Crash. boom, bang
Jul. 26th, 2014 10:08 pmВозвращаюсь к теме "создаем вин приложение руками".
Создаем TXT файл, в который копируем команды для debug.exe
f 0 400 0
f 1000 1200 0
a 1010
db "WBScript"
a 1020
db "Hello, World!"
a 1040
db "USER32.dll"
a 1050
db "KERNEL32.dll"
a 1060
db 0,0,"MessageBoxA"
a 1070
db 0,0,"ExitProcess"
a 1080
dw 1060,0,0,0,1070,0,0,0
a 1000
dw 1060,0,0,0,1070,0,0,0
a 1090
dw 1080,0
dw 0,0,0,0
dw 1040,0
dw 1000,0
upd: ВОТ ОНА проблема, этот перевод каретки. его быть НЕ ДОЛЖНО.
dw 1088,0,0,0,0,0,1050,0,1008,0
a 10d0
db 6a,0
db 68,10,10,40,0
db 68,20,10,40,0
db 6a,0
db ff,15,0,10,40,0
db 6a,0
db ff,15,8,10,40,0
m 1000 1200 200
a 0
db 4d,5a
a 3c
db 40
a 40
db 50,45,0,0
dw 14c,1
a 54
dw e0,10f,10b
a 68
dw 10d0
a 74
dw 0,40,1000,0,200,0
dw 4,0,0,0,4
a 90
dw 2000,0,200,0,0,0,2
a b4
dw 10
a c0
dw 1090,0,3c
a 140
dw 1000,0,1000,0,200,0,200,0
a 15c
dw 20,e000
m 0 400 100
n hello.bin
r cx
400
w
q
Важно, после "q" должна быть еще одна строка (т.е. "enter")
(далее я подобное буду заливать на сайт, и давать ссылки на него, а пока все-под-кат).
Теперь даем в консоль команду
debug < hello.txt
(обычное досовое перенаправление ввода-вывода).
Если все прошло успешно, дебаг выполнит команды из списка, и образуется hello.bin.
Переименовываем его в EXE, запускаем, видим мессадж, жмем ОК, и..

Попробуем разобраться, что происходит. Для этого понадобится отладчик OllyDbg.
(http://ru.wikipedia.org/wiki/OllyDbg)

Как видно на картинке, исполнение заканчивается вызовом "в никуда", а должен быть ExitProcess.
Исправлять - coming soon.
Создаем TXT файл, в который копируем команды для debug.exe
f 0 400 0
f 1000 1200 0
a 1010
db "WBScript"
a 1020
db "Hello, World!"
a 1040
db "USER32.dll"
a 1050
db "KERNEL32.dll"
a 1060
db 0,0,"MessageBoxA"
a 1070
db 0,0,"ExitProcess"
a 1080
dw 1060,0,0,0,1070,0,0,0
a 1000
dw 1060,0,0,0,1070,0,0,0
a 1090
dw 1080,0
dw 0,0,0,0
dw 1040,0
dw 1000,0
upd: ВОТ ОНА проблема, этот перевод каретки. его быть НЕ ДОЛЖНО.
dw 1088,0,0,0,0,0,1050,0,1008,0
a 10d0
db 6a,0
db 68,10,10,40,0
db 68,20,10,40,0
db 6a,0
db ff,15,0,10,40,0
db 6a,0
db ff,15,8,10,40,0
m 1000 1200 200
a 0
db 4d,5a
a 3c
db 40
a 40
db 50,45,0,0
dw 14c,1
a 54
dw e0,10f,10b
a 68
dw 10d0
a 74
dw 0,40,1000,0,200,0
dw 4,0,0,0,4
a 90
dw 2000,0,200,0,0,0,2
a b4
dw 10
a c0
dw 1090,0,3c
a 140
dw 1000,0,1000,0,200,0,200,0
a 15c
dw 20,e000
m 0 400 100
n hello.bin
r cx
400
w
q
Важно, после "q" должна быть еще одна строка (т.е. "enter")
(далее я подобное буду заливать на сайт, и давать ссылки на него, а пока все-под-кат).
Теперь даем в консоль команду
debug < hello.txt
(обычное досовое перенаправление ввода-вывода).
Если все прошло успешно, дебаг выполнит команды из списка, и образуется hello.bin.
Переименовываем его в EXE, запускаем, видим мессадж, жмем ОК, и..

Попробуем разобраться, что происходит. Для этого понадобится отладчик OllyDbg.
(http://ru.wikipedia.org/wiki/OllyDbg)

Как видно на картинке, исполнение заканчивается вызовом "в никуда", а должен быть ExitProcess.
Исправлять - coming soon.
no subject
Date: 2014-07-28 10:21 am (UTC)