Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2008, 17:41   #1
benjaminfran
Пользователь
 
Регистрация: 14.02.2008
Сообщений: 42
По умолчанию Delphi и ASM

люди сушествуютли переводчики кода из асемблера в код дельфий? просто во что
Код:
Project Project1;

Uses
  Unit1 in 'Unit1.pas' {TForm1};

{$R *.RES}

begin
{
0044ED1C   55                     push    ebp
0044ED1D   8BEC                   mov     ebp, esp
0044ED1F   83C4F0                 add     esp, -$10
0044ED22   B83CEB4400             mov     eax, $0044EB3C

* Reference to: SysInit.@InitExe(Pointer);
|
0044ED27   E89C6EFBFF             call    00405BC8

* Reference to TApplication instance
|
0044ED2C   A1D0FF4400             mov     eax, dword ptr [$0044FFD0]
0044ED31   8B00                   mov     eax, [eax]

* Reference to: Forms.TApplication.Initialize(TApplication);
|
0044ED33   E83CE6FFFF             call    0044D374

* Reference to TForm1 instance
|
0044ED38   8B0DAC004500           mov     ecx, [$004500AC]

* Reference to TApplication instance
|
0044ED3E   A1D0FF4400             mov     eax, dword ptr [$0044FFD0]
0044ED43   8B00                   mov     eax, [eax]

* Reference to class TForm1
|
0044ED45   8B1514E94400           mov     edx, [$0044E914]

* Reference to: Forms.TApplication.CreateForm(TApplication;TComponentClass;void;void);
|
0044ED4B   E83CE6FFFF             call    0044D38C

* Reference to TApplication instance
|
0044ED50   A1D0FF4400             mov     eax, dword ptr [$0044FFD0]
0044ED55   8B00                   mov     eax, [eax]

* Reference to: Forms.TApplication.Run(TApplication);
|
0044ED57   E8B0E6FFFF             call    0044D40C

* Reference to: System.@Halt0;
|
0044ED5C   E8BF4FFBFF             call    00403D20
0044ED61   8D4000                 lea     eax, [eax+$00]
0044ED64   0000                   add     [eax], al

}
как это реализовать в дельфий?
benjaminfran вне форума Ответить с цитированием
Старый 16.02.2008, 20:07   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
как это реализовать в дельфий?
1. Досконально изучить ASM
2. Не менее досконально изучить Delphi
3. Обложиться горой MSDN
...
Ну, вроде все самое главное перечислил.
После этого перевод на Дельфи будет происходить за 6 секунд.

А если более серьезно, то, набравшись как следует опыта в программировании для Дельфи, практически любая программа может быть написана по образцу и подобию имеющегося экзешника.
И бросьте вы эти бредовые идеи с дизассемблированием и воссозданием какой-нибудь кваки в Дельфи.
Существует один-единственный инструмент для этого - ГОЛОВА... Ну, и ее содержимое, конечно же...
mihali4 вне форума Ответить с цитированием
Старый 16.02.2008, 20:51   #3
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

В приведенном куске вообще ничего переводить не нужно, самые "загадочные" моменты - это стандартное создание стекового фрейма, вызовы fastcall-методов и возврат кода завершения. Поэтому, вопрос не совсем ясен. А если в глобальном смысле, про перевод с низкого уровня на высокий, то это, кажется проблема, которой задавались все на свете и которую воследствии забросили.... за ненадобностью..
B_N вне форума Ответить с цитированием
Старый 16.02.2008, 23:43   #4
benjaminfran
Пользователь
 
Регистрация: 14.02.2008
Сообщений: 42
По умолчанию

я просто привёл пример (момента геде я п перекомпельровал програму из дельфий в асем Дизсемблером но как назад ((((((((((((((((9
benjaminfran вне форума Ответить с цитированием
Старый 17.02.2008, 15:46   #5
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

ты привёл пример проекта который дал DeDe, при декомпилирповании дельфийской программы. и этот кусок не что иное как
Код:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
rpy3uH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа-тест в Delphi) скиньте))а то програмку здавать преподу надо,и самой хочется понять Delphi Верчик Помощь студентам 9 02.03.2009 17:46
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? redred Общие вопросы Delphi 10 11.12.2007 10:43
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? dagarik БД в Delphi 7 22.10.2007 17:54