Сейчас на форуме: UniSoft, bartolomeo (+6 невидимых)

 eXeL@B —› Программирование —› Декомпиляция программы написанной Делфи
Посл.ответ Сообщение

Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 02 февраля 2011 16:05
· Личное сообщение · #1

Помогите разобраться, к примеру, я написал на делфи две процедуры


procedure my();
begin
ShowMessage('Hello');
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
my();
end;

После компиляции и декомпиляции получил одну

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
// Address $45F358
{*
0045F358 E8E3FFFFFF call 0045F340
0045F35D C3 ret
*}
end;

Как мне восстановить работоспособность программы по этому коду? Заключение в скобки
Code:
  1. asm end
не помогает

Такой код тоже не работает ругается на call
Code:
  1. asm
  2. call    0045F340
  3. ret
  4. end;


Как быть? Восстановить реально?




Ранг: 307.9 (мудрец), 196thx
Активность: 0.180
Статус: Участник

Создано: 02 февраля 2011 16:16 · Поправил: mysterio
· Личное сообщение · #2

Войди в/разверни call и все востановишь Другими словами получи содержание процедуры.

-----
Don_t hate the cracker - hate the code.




Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 02 февраля 2011 16:21
· Личное сообщение · #3

Я извеняюсь но что значит войти? Я в ассемблере не особо вроде, если можно примерчик как это делается, все декомпилируется и работает, а вот с вызовом функций беда прям




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 02 февраля 2011 16:21
· Личное сообщение · #4

если бы всё так просто было) полностью восстановить не удастся, но в твоем примере возможно. попробуй вот этот инструмент https://ssl.cracklab.ru/f/action=vthread&forum=3&topic=15434

без нормальных знаний, даже нечего пытаться.

-----
[nice coder and reverser]


| Сообщение посчитали полезным: anvabes

Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 02 февраля 2011 17:12
· Личное сообщение · #5

Спасибо полезная прога да вот только получилось следующее
Code:
  1. procedure sub_0045F340();
  2. asm
  3.    mov        eax, 'Hello'
  4.    call         ShowMessage
  5.    ret
  6. end;
  7.  
  8. procedure TForm1.BitBtn1Click(Sender: TObject);
  9. begin
  10. // Address $45F358
  11.    asm
  12.       call       sub_0045F340
  13.       ret
  14.    end;
  15. end;

Вместо сообщения Hello вылетает новая форма, больших размеров




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 02 февраля 2011 17:21
· Личное сообщение · #6

ну потому что не так нужно)))
Code:
  1. procedure sub_0045F340();
  2. const
  3.   shello : string = 'Hello';
  4. asm
  5.   mov          eax,shello
  6.   call         ShowMessage
  7. end;


-----
[nice coder and reverser]




Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 02 февраля 2011 17:27
· Личное сообщение · #7

Спасибо , помогло дальше пока сам копаться, хороший форум)))


 eXeL@B —› Программирование —› Декомпиляция программы написанной Делфи
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати