powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi+asm
24 сообщений из 49, страница 2 из 2
Delphi+asm
    #39871644
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
очередной кулхацкер))))

вот тебе рабочее решение - формируешь в памяти dll, пишешь её на диск, загружаешь и вызываешь из dll нужный тебе код.
...
Рейтинг: 0 / 0
Delphi+asm
    #39871674
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir BaskakovВариант. Записывать байт за байтом в правильное место dll свой код. Динамически загружать. Вызывать ее метод.
Профит!Азам вирусостроения учишь?
...
Рейтинг: 0 / 0
Delphi+asm
    #39871678
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi_WatcherПомогите запустить массив

Delphi XE7
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
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.
...
Рейтинг: 0 / 0
Delphi+asm
    #39871679
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polesov,
более того, работает в варианте
Код: pascal
1.
2.
3.
4.
procedure ExecCode( Code : pointer ); assembler;
asm
     Call    EAX
end;
...
Рейтинг: 0 / 0
Delphi+asm
    #39871680
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PolesovDelphi_WatcherПомогите запустить массив

Delphi XE7
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
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 нельзя исполнять код, это как?
...
Рейтинг: 0 / 0
Delphi+asm
    #39871684
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziv-2014А то, что в сегменте .data нельзя исполнять код, это как?
Массив содержит 63 инструкции Nop и последний байт инструкция Ret.
Трассировка показывает, что код исполняется именно этот код.

Единственное, что приходит на ум - а константный массив Code расположен в сегменте .data?
...
Рейтинг: 0 / 0
Delphi+asm
    #39871693
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polesov,
Вот значения адресов, полученные в отладчике:
Код: powershell
1.
2.
3.
005DB54C  - procedure ExecCode
005DB650  - method Button1Click
005E89C0  - Code : array

Есть ли способ получить адрес с нулевым смещением в сегменте .data?
...
Рейтинг: 0 / 0
Delphi+asm
    #39871705
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polesov,
цитатаВ плоской 32-битной модели памяти все сегментные регистры нормально указывают на один и тот же сегмент памяти
И в отладчике это видно.
...
Рейтинг: 0 / 0
Delphi+asm
    #39871730
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polesovziv-2014А то, что в сегменте .data нельзя исполнять код, это как?
Массив содержит 63 инструкции Nop и последний байт инструкция Ret.
Трассировка показывает, что код исполняется именно этот код.

Единственное, что приходит на ум - а константный массив Code расположен в сегменте .data?
Вероятно винда считает EXE-ник кривым и для совместимости запускает без DEP. Фигасе :)
...
Рейтинг: 0 / 0
Delphi+asm
    #39871740
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziv-2014Вероятно винда считает EXE-ник кривым и для совместимости запускает без DEP. Фигасе :)
Может быть, дело в этом (Windows 8.1)?
...
Рейтинг: 0 / 0
Delphi+asm
    #39871753
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polesovziv-2014Вероятно винда считает EXE-ник кривым и для совместимости запускает без DEP. Фигасе :)
Может быть, дело в этом (Windows 8.1)?
Дело в этом!
...
Рейтинг: 0 / 0
Delphi+asm
    #39871817
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziv-2014Дело в этом!Ну, вот и разобрались.
Значит, мой способ не работоспособный.
...
Рейтинг: 0 / 0
Delphi+asm
    #39872246
Delphi_Watcher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мда помощи ноль вообщем ((
...
Рейтинг: 0 / 0
Delphi+asm
    #39872278
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi_WatcherМда помощи ноль вообщем ((
Тебе уже все объяснили и дали. Только нос ты свой воротишь и принимать не хочешь.
...
Рейтинг: 0 / 0
Delphi+asm
    #39872394
Delphi_Watcher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ziv-2014Delphi_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;
...
Рейтинг: 0 / 0
Delphi+asm
    #39872404
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi_Watcherziv-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 нужный тебе код.
...
Рейтинг: 0 / 0
Delphi+asm
    #39872413
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi_Watcherziv-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 , где все это окультурено - компиляция на лету, запуск....
...
Рейтинг: 0 / 0
Delphi+asm
    #39872429
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi_Watcherziv-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 (он на исполнение) и наслаждайся.
...
Рейтинг: 0 / 0
Delphi+asm
    #39876151
527470
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Delphi_WatcherНе работает этот способ:

Максимально информативно. А если я скажу что работает?
...
Рейтинг: 0 / 0
Delphi+asm
    #39876154
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
527470,

Тебе скажут что ты принудительно отключил защиту в винде.
...
Рейтинг: 0 / 0
Delphi+asm
    #39876192
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat527470,
Тебе скажут что ты принудительно отключил защиту в винде.
Кстати, в десктопных ОС, в отличие от серверных, она ЕМНИП по-умолчанию в таком положении.
...
Рейтинг: 0 / 0
Delphi+asm
    #39876222
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpКстати, в десктопных ОС, в отличие от серверных, она ЕМНИП по-умолчанию в таком положении.
Это не повод расчитывать на подобное.
Вполне может быть заоверрайжено через политики.
...
Рейтинг: 0 / 0
Delphi+asm
    #39876708
Delphi_Watcher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ziv-2014Delphi_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
...
Рейтинг: 0 / 0
Delphi+asm
    #39876712
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi_Watcherziv-2014пропущено...

Напиши утилиту, которая запихнет Code в сегмент .text (он на исполнение) и наслаждайся.
http://joxi.ru/nAyYoEVfgL5vaA
В чем проблема? Отключи DEP и будет тебе счастье?
...
Рейтинг: 0 / 0
24 сообщений из 49, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi+asm
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]