Поиск:

Ответ в темуСоздание новой темы Создание опроса
> переложение функций Asm на delphi 
:(
    Опции темы
gonzales
Дата 18.4.2006, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 13.3.2006

Репутация: нет
Всего: 2



Доброе время суток!

Я полный профан в ассемблере, так что прошу ногами не пинатьsmile

Имею exe-файл, который я декомпилировал в делфовый формат. Но естественно все процедуры (FormCreate и т.д) написаны на асме.
Получилось что то типа

Код

procedure TForm1.FormCreate(Sender : TObject);
begin

(*
0044C04C   55                     push    ebp
0044C04D   8BEC                   mov     ebp, esp
0044C04F   6A00                   push    $00
0044C051   6A00                   push    $00
0044C053   6A00                   push    $00
0044C055   53                     push    ebx
0044C056   8BD8                   mov     ebx, eax
0044C058   33C0                   xor     eax, eax
0044C05A   55                     push    ebp


Вопрос 1.

я так понимаю что надо сами команды писать в виде:

Код

procedure TForm1.FormCreate(Sender : TObject);
begin
 asm
  push    ebp 
  mov     ebp, esp 
  push    $00 
  push    $00
  push    $00
  push    ebx
  mov     ebx, eax
  xor     eax, eax
  push    ebp
 end;
end;


Вопрос второй

В коде встречаются строки типа 
* Reference to: forms.TApplication.GetExeName(TApplication):AnsiString;
- это что просто комментарии?

Вопрос 3.

В коде встречаются строки типа 

call    00445880

которые никак не обрабатываются компилятором. Но когда я смотрю на них в декомпиляторе они ссылаются на следующий кусок кода, например 

Код

00445880   53                     push    ebx
00445881   8BDA                   mov     ebx, edx
00445883   8BD3                   mov     edx, ebx
00445885   33C0                   xor     eax, eax



Вопрос, как мне это грамотно писать, просто заменять строку call 00540549 на соответствующий ей код?

Заранее спасибо за ответы 
--------------------
- мастер, мастер, запорол..., все четыре запорол!!!- я ж тебе только три давал!!!???- да я и образец запорол!!!!
PM MAIL   Вверх
gonzales
Дата 18.4.2006, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 13.3.2006

Репутация: нет
Всего: 2



PS

Есть ли шанс, что при правильном синтаксисе кода программа все таки заработает? 
--------------------
- мастер, мастер, запорол..., все четыре запорол!!!- я ж тебе только три давал!!!???- да я и образец запорол!!!!
PM MAIL   Вверх
sgi1981
Дата 19.4.2006, 04:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 16.3.2006

Репутация: 7
Всего: 10



пробуй заменять ассемблерные строчки с мнемоническими обозначениями команд на соответствующую последовательность байтов машинного кода.
 


--------------------
Тело в нашем пространстве - есть часть пространства, в которой пространство обладает дисторсией относительно внешнего пространства.
PM MAIL   Вверх
gonzales
Дата 19.4.2006, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 13.3.2006

Репутация: нет
Всего: 2



Цитата

пробуй заменять ассемблерные строчки с мнемоническими обозначениями команд на соответствующую последовательность байтов машинного кода.

 не совсем понял, о чем речь

а нельзя ли поподробнее и ближе к вопросам? 
--------------------
- мастер, мастер, запорол..., все четыре запорол!!!- я ж тебе только три давал!!!???- да я и образец запорол!!!!
PM MAIL   Вверх
Chingachguk
Дата 20.4.2006, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Цитата

Вопрос 3.

В коде встречаются строки типа 

call    00445880

которые никак не обрабатываются компилятором. Но когда я смотрю на них в декомпиляторе они ссылаются на следующий кусок кода, например


Это ссылка на подпрограмму. В оригинале было примерно так:

procedure SomeProc;
 begin
 ...
 end;

и где-то был вызов:

SomeProc;

Вот это место-то и переводится как "call    00445880". Если эта подпрограмма "собственная", те ее написал программист, то необходимо найти ее в дизассемблированом листинге и сослаться на нее. Допустим, после дизассемблирования она называется:

SomeSub_00445880

Тогда вместо

call    00445880

Нужно писать:

call SomeSub_00445880.

Вообще непонятно, чем ты декомпиллируешь. DeDe ? Приложи ВЕСЬ декомпиллированный текст и спроси уж по нему. 


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Wing
Дата 1.5.2006, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 19.3.2006

Репутация: нет
Всего: нет



Цитата(gonzales @  18.4.2006,  14:31 Найти цитируемый пост)
Вопрос второй

В коде встречаются строки типа 
* Reference to: forms.TApplication.GetExeName(TApplication):AnsiString;
- это что просто комментарии?

Это видимо пояснение для следующей далее ссылки, т.е. какой-то там call ..., а на делфи это Application.ExeName 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1151 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.