Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: Delphi+asm  [new]
asutp2
Member

Откуда: Тюмень
Сообщений: 556
очередной кулхацкер))))

вот тебе рабочее решение - формируешь в памяти dll, пишешь её на диск, загружаешь и вызываешь из dll нужный тебе код.
4 окт 19, 13:43    [21986717]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
Gator
Member

Откуда: Москва
Сообщений: 14978
Vladimir Baskakov
Вариант. Записывать байт за байтом в правильное место dll свой код. Динамически загружать. Вызывать ее метод.
Профит!
Азам вирусостроения учишь? Картинка с другого сайта.
4 окт 19, 14:12    [21986763]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
Polesov
Member

Откуда:
Сообщений: 631
Delphi_Watcher
Помогите запустить массив


Delphi XE7
var
  Code : array[0 .. 63] of byte =
       ( $90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
         $90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
         $90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
         $90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$C3 );

procedure ExecCode( Code : pointer ); assembler;
asm
     Push    EBX
     Mov     EBX,    EAX
     Call    EBX
     Pop     EBX
end;

procedure TForm10.Button1Click(Sender: TObject);
begin
  ExecCode( @Code );
end;


С уважением, Polesov.
4 окт 19, 14:22    [21986770]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
Polesov
Member

Откуда:
Сообщений: 631
Polesov,
более того, работает в варианте
procedure ExecCode( Code : pointer ); assembler;
asm
     Call    EAX
end;
4 окт 19, 14:24    [21986771]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
ziv-2014
Member

Откуда:
Сообщений: 469
Polesov
Delphi_Watcher
Помогите запустить массив


Delphi XE7
var
  Code : array[0 .. 63] of byte =
       ( $90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
         $90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
         $90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
         $90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$C3 );

procedure ExecCode( Code : pointer ); assembler;
asm
     Push    EBX
     Mov     EBX,    EAX
     Call    EBX
     Pop     EBX
end;

procedure TForm10.Button1Click(Sender: TObject);
begin
  ExecCode( @Code );
end;


С уважением, Polesov.

А то, что в сегменте .data нельзя исполнять код, это как?
4 окт 19, 14:25    [21986772]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
Polesov
Member

Откуда:
Сообщений: 631
ziv-2014
А то, что в сегменте .data нельзя исполнять код, это как?

Массив содержит 63 инструкции Nop и последний байт инструкция Ret.
Трассировка показывает, что код исполняется именно этот код.

Единственное, что приходит на ум - а константный массив Code расположен в сегменте .data?
4 окт 19, 14:29    [21986778]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
Polesov
Member

Откуда:
Сообщений: 631
Polesov,
Вот значения адресов, полученные в отладчике:
005DB54C  - procedure ExecCode
005DB650  - method Button1Click
005E89C0  - Code : array
Есть ли способ получить адрес с нулевым смещением в сегменте .data?
4 окт 19, 14:51    [21986803]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
Polesov
Member

Откуда:
Сообщений: 631
Polesov,
цитата
В плоской 32-битной модели памяти все сегментные регистры нормально указывают на один и тот же сегмент памяти

И в отладчике это видно.

К сообщению приложен файл. Размер - 40Kb
4 окт 19, 15:09    [21986822]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
ziv-2014
Member

Откуда:
Сообщений: 469
Polesov
ziv-2014
А то, что в сегменте .data нельзя исполнять код, это как?

Массив содержит 63 инструкции Nop и последний байт инструкция Ret.
Трассировка показывает, что код исполняется именно этот код.

Единственное, что приходит на ум - а константный массив Code расположен в сегменте .data?

Вероятно винда считает EXE-ник кривым и для совместимости запускает без DEP. Фигасе :)
4 окт 19, 15:49    [21986867]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
Polesov
Member

Откуда:
Сообщений: 631
ziv-2014
Вероятно винда считает EXE-ник кривым и для совместимости запускает без DEP. Фигасе :)

Может быть, дело в этом (Windows 8.1)?

К сообщению приложен файл. Размер - 19Kb
4 окт 19, 16:03    [21986884]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
ziv-2014
Member

Откуда:
Сообщений: 469
Polesov
ziv-2014
Вероятно винда считает EXE-ник кривым и для совместимости запускает без DEP. Фигасе :)

Может быть, дело в этом (Windows 8.1)?

Дело в этом!
4 окт 19, 16:19    [21986901]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
Polesov
Member

Откуда:
Сообщений: 631
ziv-2014
Дело в этом!
Ну, вот и разобрались.
Значит, мой способ не работоспособный.
4 окт 19, 17:45    [21986994]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
Delphi_Watcher
Member

Откуда:
Сообщений: 54
Мда помощи ноль вообщем ((
6 окт 19, 19:07    [21987699]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
ziv-2014
Member

Откуда:
Сообщений: 469
Delphi_Watcher
Мда помощи ноль вообщем ((

Тебе уже все объяснили и дали. Только нос ты свой воротишь и принимать не хочешь.
6 окт 19, 20:24    [21987742]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
Delphi_Watcher
Member

Откуда:
Сообщений: 54
ziv-2014
Delphi_Watcher
Мда помощи ноль вообщем ((

Тебе уже все объяснили и дали. Только нос ты свой воротишь и принимать не хочешь.

Что дали то? нарабочий код, отлично!
Не работает этот способ:
var
Code : array[0 .. 63] of byte =
( $90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$C3 );

procedure ExecCode( Code : pointer ); assembler;
asm
Push EBX
Mov EBX, EAX
Call EBX
Pop EBX
end;

procedure TForm10.Button1Click(Sender: TObject);
begin
ExecCode( @Code );
end;
7 окт 19, 08:13    [21987906]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
asutp2
Member

Откуда: Тюмень
Сообщений: 556
Delphi_Watcher
ziv-2014
пропущено...

Тебе уже все объяснили и дали. Только нос ты свой воротишь и принимать не хочешь.

Что дали то? нарабочий код, отлично!
Не работает этот способ:
var
Code : array[0 .. 63] of byte =
( $90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$C3 );

procedure ExecCode( Code : pointer ); assembler;
asm
Push EBX
Mov EBX, EAX
Call EBX
Pop EBX
end;

procedure TForm10.Button1Click(Sender: TObject);
begin
ExecCode( @Code );
end;


asutp2
вот тебе рабочее решение - формируешь в памяти dll, пишешь её на диск, загружаешь и вызываешь из dll нужный тебе код.
7 окт 19, 08:53    [21987921]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 2004
Delphi_Watcher
ziv-2014
пропущено...

Тебе уже все объяснили и дали. Только нос ты свой воротишь и принимать не хочешь.

Что дали то? нарабочий код, отлично!
Не работает этот способ:
var
Code : array[0 .. 63] of byte =
( $90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$C3 );

procedure ExecCode( Code : pointer ); assembler;
asm
Push EBX
Mov EBX, EAX
Call EBX
Pop EBX
end;

procedure TForm10.Button1Click(Sender: TObject);
begin
ExecCode( @Code );
end;


Как нерабочий? под какой то winXP заработает. А под десяткой с антивирусом так себе. Правила игры поменялись, и так как раньше уже нельзяю

А и ну зачем. Для динамического формирования исполняемого кода никак не хуже брать платформу .net , где все это окультурено - компиляция на лету, запуск....
7 окт 19, 09:35    [21987939]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
ziv-2014
Member

Откуда:
Сообщений: 469
Delphi_Watcher
ziv-2014
пропущено...

Тебе уже все объяснили и дали. Только нос ты свой воротишь и принимать не хочешь.

Что дали то? нарабочий код, отлично!
Не работает этот способ:
var
Code : array[0 .. 63] of byte =
( $90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$C3 );

procedure ExecCode( Code : pointer ); assembler;
asm
Push EBX
Mov EBX, EAX
Call EBX
Pop EBX
end;

procedure TForm10.Button1Click(Sender: TObject);
begin
ExecCode( @Code );
end;

Напиши утилиту, которая запихнет Code в сегмент .text (он на исполнение) и наслаждайся.
7 окт 19, 10:29    [21987979]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
527470
Member

Откуда:
Сообщений: 28
Delphi_Watcher
Не работает этот способ:

Максимально информативно. А если я скажу что работает?
14 окт 19, 17:54    [21993990]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
rgreat
Member

Откуда:
Сообщений: 5499
527470,

Тебе скажут что ты принудительно отключил защиту в винде.
14 окт 19, 17:58    [21993993]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
alekcvp
Member

Откуда:
Сообщений: 1695
rgreat
527470,
Тебе скажут что ты принудительно отключил защиту в винде.

Кстати, в десктопных ОС, в отличие от серверных, она ЕМНИП по-умолчанию в таком положении.
14 окт 19, 19:21    [21994049]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
rgreat
Member

Откуда:
Сообщений: 5499
alekcvp
Кстати, в десктопных ОС, в отличие от серверных, она ЕМНИП по-умолчанию в таком положении.

Это не повод расчитывать на подобное.
Вполне может быть заоверрайжено через политики.
14 окт 19, 19:47    [21994085]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
Delphi_Watcher
Member

Откуда:
Сообщений: 54
ziv-2014
Delphi_Watcher
пропущено...

Что дали то? нарабочий код, отлично!
Не работает этот способ:
var
Code : array[0 .. 63] of byte =
( $90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,
$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$90,$C3 );

procedure ExecCode( Code : pointer ); assembler;
asm
Push EBX
Mov EBX, EAX
Call EBX
Pop EBX
end;

procedure TForm10.Button1Click(Sender: TObject);
begin
ExecCode( @Code );
end;

Напиши утилиту, которая запихнет Code в сегмент .text (он на исполнение) и наслаждайся.

http://joxi.ru/nAyYoEVfgL5vaA
15 окт 19, 18:12    [21994876]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+asm  [new]
ziv-2014
Member

Откуда:
Сообщений: 469
Delphi_Watcher
ziv-2014
пропущено...

Напиши утилиту, которая запихнет Code в сегмент .text (он на исполнение) и наслаждайся.

http://joxi.ru/nAyYoEVfgL5vaA

В чем проблема? Отключи DEP и будет тебе счастье?
15 окт 19, 18:23    [21994882]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Delphi Ответить