Перейти к содержанию

как посмотреть код ?


Pin_Ball

Рекомендуемые сообщения

Вобщем не первый раз сталкиваюсь с этой проблемой. Ситуация примерно такая:

есть ехе-шники - небольшая формочка - вводишь 2 числа(а и b.) и выводится число С -

в обычном текстбоксе.

 

И задача вобщем в том чтобы определить - по какой формуле из чисел а и b получается С.

 

Вопрос собственно вот в чем - существуют ли такие программы, которые позволяют открыть и

посмотреть код вычислений этого ехе-шника ? или перевести его в другой код ? (в cpp например)

 

зы

пробовал через дизассемблер - вылез бесконечный поток всякой дряни.. которая собственно ничего

мне не дала :)

Ссылка на комментарий
Поделиться на другие сайты

Собственно эта дрянь и есть искомое. Каким компилятором рождена экзеха?

с помощью ресторатора выудил вот это, судя по всему на делфи.

 

Package Info (Delphi or C++ Builder)

PackageInfo: 0xCC000001

Flags: never build

Type: undefined

Compiler: produced with Delphi 4 or higher

 

Я проглядел еще раз строчки в этом дизассемблере -

там иногда встречается такая зеленая строка Possible StringData Ref from code Obj ->

а дальше идет текст - иногда это бывают насколько я понял команды, но в большинстве случаев

что-то типа этого "SV<Ъ<p...Ыt#;^dt - может я что-то не так делаю, можешь в кратце

сказать что мне искать надо ?

 

зы

Как я понял эта прога переводит экзешник в ассемблер(в котором я не смыслю) - а есть ли

такой который переводит его в C++ ?

Ссылка на комментарий
Поделиться на другие сайты

Ну так попробуй DeDe на него напустить.

Вот что получилось в процедуре Button1Click

0045020C 55 push ebp

0045020D 8BEC mov ebp, esp

0045020F 83C4DC add esp, -$24

00450212 53 push ebx

00450213 33C9 xor ecx, ecx

00450215 894DDC mov [ebp-$24], ecx

00450218 894DE0 mov [ebp-$20], ecx

0045021B 894DE4 mov [ebp-$1C], ecx

0045021E 8BD8 mov ebx, eax

00450220 33C0 xor eax, eax

00450222 55 push ebp

 

* Possible String Reference to: 'йZ5ыялг[‹е]Г'

|

00450223 68B5024500 push $004502B5

***** TRY

|

00450228 64FF30 push dword ptr fs:[eax]

0045022B 648920 mov fs:[eax], esp

0045022E 8D55E4 lea edx, [ebp-$1C]

 

* Reference to control TForm1.Edit1 : TEdit

 

 

|

00450231 8B83FC020000 mov eax, [ebx+$02FC]

* Reference to: Controls.TControl.GetText(TControl):TCaption;

|

00450237 E824F2FDFF call 0042F460

0045023C 8B45E4 mov eax, [ebp-$1C]

 

* Reference to: SysUtils.StrToFloat(AnsiString):Extended;overload;

|

0045023F E8488DFBFF call 00408F8C

00450244 DD5DF8 fstp qword ptr [ebp-$08]

00450247 9B wait

00450248 8D55E0 lea edx, [ebp-$20]

 

* Reference to control TForm1.Edit3 : TEdit

 

|

0045024B 8B8304030000 mov eax, [ebx+$0304]

 

* Reference to: Controls.TControl.GetText(TControl):TCaption;

|

00450251 E80AF2FDFF call 0042F460

00450256 8B45E0 mov eax, [ebp-$20]

 

* Reference to: SysUtils.StrToFloat(AnsiString):Extended;overload;

|

00450259 E82E8DFBFF call 00408F8C

0045025E DD5DF0 fstp qword ptr [ebp-$10]

00450261 9B wait

00450262 DD45F8 fld qword ptr [ebp-$08]

00450265 DC65F0 fsub qword ptr [ebp-$10]

00450268 D805C4024500 fadd dword ptr [$004502C4]

0045026E DD5DE8 fstp qword ptr [ebp-$18]

00450271 9B wait

00450272 DD45E8 fld qword ptr [ebp-$18]

00450275 83C4F4 add esp, -$0C

00450278 DB3C24 fstp tbyte ptr [esp]

0045027B 9B wait

0045027C 8D45DC lea eax, [ebp-$24]

 

|

0045027F E8A88CFBFF call 00408F2C

00450284 8B55DC mov edx, [ebp-$24]

 

* Reference to control TForm1.Edit2 : TEdit

 

|

00450287 8B8300030000 mov eax, [ebx+$0300]

* Reference to: Controls.TControl.SetText(TControl;TCaption);

|

0045028D E8FEF1FDFF call 0042F490

00450292 33C0 xor eax, eax

00450294 5A pop edx

00450295 59 pop ecx

00450296 59 pop ecx

00450297 648910 mov fs:[eax], edx

 

****** FINALLY

|

 

* Possible String Reference to: '[‹е]Г'

|

0045029A 68BC024500 push $004502BC

0045029F 8D45DC lea eax, [ebp-$24]

 

* Reference to: System.@LStrClr(void;void);

|

004502A2 E8693BFBFF call 00403E10

004502A7 8D45E0 lea eax, [ebp-$20]

004502AA BA02000000 mov edx, $00000002

* Reference to: System.@LStrArrayClr(void;void;Integer);

|

004502AF E8803BFBFF call 00403E34

004502B4 C3 ret

 

* Reference to: System.@HandleFinally;

|

004502B5 E95A35FBFF jmp 00403814

004502BA EBE3 jmp 0045029F

****** END

|

004502BC 5B pop ebx

004502BD 8BE5 mov esp, ebp

004502BF 5D pop ebp

004502C0 C3 ret

мне кажется либо ответ прячется в этих зеленых строчках, либо я совсем что-то накосипорил)
Ссылка на комментарий
Поделиться на другие сайты

Заархивировано

Эта тема находится в архиве и закрыта для дальнейших ответов.

×
×
  • Создать...