Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

записать asm код по определёному адресу

-

Вопросы и ответы, обсуждения

- Ваши вопросы по Pascal/Delphi только в данном разделе

Ответ
 
Опции темы
Старый 03.05.2013, 02:18   #1
 Разведчик
Аватар для RamDigga
 
RamDigga неизвестен в этих краяхRamDigga неизвестен в этих краях
Регистрация: 27.10.2012
Сообщений: 24
Популярность: -183
Сказал(а) спасибо: 35
Поблагодарили 23 раз(а) в 14 сообщениях
Отправить сообщение для RamDigga с помощью Skype™
 
По умолчанию записать asm код по определёному адресу

На С++ это будет выглядеть так :




Цитата:
float Ochki=1;

DWORD Addres_Solitaire =(DWORD)GetModuleHandleA("Solitaire.exe")+ 0x012345;
DWORD RETURN_Addres_Solitaire = Addres_Solitaire + 0x5;


_asm
{
mov eax,[Ochki]
pop esi
mov esp,ebp
jmp dword ptr [RETURN_Addres_Solitaire]
}


Пробовал записать на Delphi так :

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
Addres_Solitaire,RETURN_Addres_Solitaire:dword;
begin
Addres_Solitaire:=$681B25;
RETURN_Addres_Solitaire:=Addres_Solitaire+6;
begin
 asm
 mov eax, [Addres_Solitaire]
  pop esi
  mov esp,ebp
  jmp dword ptr [RETURN_Addres_Solitaire]
 end;
 end;
end;


Компилятор не кричит, но бьёт ошибку при нажатии кнопки :

[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 03.05.2013, 02:30   #2
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: записать asm код по определёному адресу

Код:
var
Addres_Solitaire:dword;
begin
Addres_Solitaire:=$681B25;
 asm
 mov eax, [Addres_Solitaire]
 pop esi
 mov esp, ebp
 jmp dword ptr [eax+8]
 end;
end;
И сразу тебе говорю. код работать нормально не будет, ибо надо перед тем, как тащить значение из стека, закинуть чего-то в него (push), перед тем, как писать ebp в esp, его надо инициализировать, и ещё желательно использовать pushad и popad. И да, я подозреваю, что +8 не единственное смещение и надо строить цепочку оффсетов побольше.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Пользователь сказал cпасибо:
RamDigga (03.05.2013)
Старый 03.05.2013, 03:27   #3
 Разведчик
Аватар для RamDigga
 
RamDigga неизвестен в этих краяхRamDigga неизвестен в этих краях
Регистрация: 27.10.2012
Сообщений: 24
Популярность: -183
Сказал(а) спасибо: 35
Поблагодарили 23 раз(а) в 14 сообщениях
Отправить сообщение для RamDigga с помощью Skype™
 
По умолчанию Re: записать asm код по определёному адресу

Цитата:
Сообщение от VeTaL_UAПосмотреть сообщение
Код:
var
Addres_Solitaire:dword;
begin
Addres_Solitaire:=$681B25;
 asm
 mov eax, [Addres_Solitaire]
 pop esi
 mov esp, ebp
 jmp dword ptr [eax+8]
 end;
end;
И сразу тебе говорю. код работать нормально не будет, ибо надо перед тем, как тащить значение из стека, закинуть чего-то в него (push), перед тем, как писать ebp в esp, его надо инициализировать, и ещё желательно использовать pushad и popad. И да, я подозреваю, что +8 не единственное смещение и надо строить цепочку оффсетов побольше.

Теперь другая ошибка )
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 03.05.2013, 10:40   #4
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: записать asm код по определёному адресу

Цитата:
Сообщение от RamDiggaПосмотреть сообщение
Теперь другая ошибка )

Цитата:
Сообщение от VeTaL_UAПосмотреть сообщение
И сразу тебе говорю. код работать нормально не будет

Я же предупредил. Готовый код писать не буду. Пояснения дал более чем точные.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Старый 03.05.2013, 18:34   #5
 Фельдмаршал
Аватар для Dimedrol1536
 
Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(
Регистрация: 22.02.2011
Сообщений: 949
Популярность: 34698
Сказал(а) спасибо: 939
Поблагодарили 2,534 раз(а) в 911 сообщениях
Отправить сообщение для Dimedrol1536 с помощью ICQ Отправить сообщение для Dimedrol1536 с помощью Skype™
 
По умолчанию Re: записать asm код по определёному адресу

RamDigga, А не проще уже С++ юзать?
  Ответить с цитированием
Старый 03.05.2013, 23:25   #6
 Разведчик
Аватар для RamDigga
 
RamDigga неизвестен в этих краяхRamDigga неизвестен в этих краях
Регистрация: 27.10.2012
Сообщений: 24
Популярность: -183
Сказал(а) спасибо: 35
Поблагодарили 23 раз(а) в 14 сообщениях
Отправить сообщение для RamDigga с помощью Skype™
 
По умолчанию Re: записать asm код по определёному адресу

Цитата:
Сообщение от Dimedrol1536Посмотреть сообщение
RamDigga, А не проще уже С++ юзать?

Проще, но я хз как мою затею на С++ воплотить, а на Delphi уже )
  Ответить с цитированием
Старый 03.05.2013, 23:30   #7
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: записать asm код по определёному адресу

Кстати, на C++ тоже интересный человек писал
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 13:46.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net