Sina Karvandi Ответов: 1

Конвертировать файл ASM получить EXE-файл


Привет ,

Согласно моему обратному инжинирингу , я использую objdump.exe в окнах .
теперь это я использую эту команду :
objdump -d MyFile.exe >>MyFile.asm

Это будет конвертировать файл EXE в ASM и выберите файл myfile.ASM-это глагол такой :
MyFile.exe:     file format pei-i386


Disassembly of section .text:

00401000 <.text>:
  401000:	55                   	push   %ebp
  401001:	89 e5                	mov    %esp,%ebp
  401003:	53                   	push   %ebx
  401004:	83 ec 34             	sub    $0x34,%esp
  401007:	a1 80 9e 60 00       	mov    0x609e80,%eax
  40100c:	85 c0                	test   %eax,%eax
  40100e:	74 1c                	je     0x40102c
  401010:	c7 44 24 08 00 00 00 	movl   $0x0,0x8(%esp)
  401017:	00 
  401018:	c7 44 24 04 02 00 00 	movl   $0x2,0x4(%esp)
  40101f:	00 
  401020:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
  401027:	ff d0                	call   *%eax
  401029:	83 ec 0c             	sub    $0xc,%esp
  40102c:	c7 04 24 10 11 40 00 	movl   $0x401110,(%esp)
  401033:	e8 e0 d9 0b 00       	call   0x4bea18


...

Теперь и после моего редактирования я хочу снова конвертировать этот файл в файл .exe !
Я пытался сделать это с помощью sth, таких как NASM или Borland TASM .

Но все они дают мне ошибку . Я думаю, что этот шаблон(MyFile.asm) неизвестен для них обоих .
Итак , есть ли какой-нибудь способ конвертировать его в exe или дать другой способ конвертировать exe в asm-файл и перекомпилировать его снова с помощью NASM или TASM ?!

Другой вопрос, что я думаю, что gcc конвертирует только файл *.c в asm и не может конвертировать *.exe в файл .asm ! это правильно ?!

заранее спасибо

1 Ответов

Рейтинг:
0

Sergey Alexandrovich Kryukov

Это зависит от платформы. Кроме того, разные ассемблеры требуют несколько разных языков ассемблера.

Это двухэтапный процесс: компиляция, а затем связывание. Инструменты для использования зависят от нескольких факторов. Похоже, вы используете старые инструменты для платформы DOS, которая в основном давно ушла в прошлое. Вам нужно использовать ассемблер (компилятор), а затем соответствующий компоновщик. Я понятия не имею, где его взять в эти дни. Возможно вы найдете все что вам нужно в FreeDOS или спросите где нибудь в сообществе FreeDOS:
http://en.wikipedia.org/wiki/FreeDOS[^],
http://www.freedos.org/[^].

Но я никогда не пытался.

—СА