· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Непонятный байт! :(

Посл.отвђт Сообщенiе


Дата: Сен 18, 2004 18:07:35

Решился изучать программирование на асме под win32.
Просьба помочь.

Есть код:
.386
.model flat,stdcall

; prototypes
ExitProcess proto uExitCode : dword
include c:\utils\masm32\include\kernel32.inc

; librarys
includelib c:\utils\masm32\lib\kernel32.lib

.data

.code
natali:
; xor eax,eax
; push eax
; call ExitProcess
invoke ExitProcess,0
end natali
;-------------------------------------------
Два случая:
1)
first_call.exe:
.00401000: 33C0 xor eax,eax
.00401002: 50 push eax
.00401003: E800000000 call ExitProcess ;kernel32.dll
.00401008: FF2500204000 jmp ExitProcess ;kernel32.dll
2)
first_invoke.exe:
.00401000: 6A00 push 000
.00401002: E801000000 call ExitProcess ;kernel32.dll
.00401007: CC int 3
.00401008: FF2500204000 jmp ExitProcess ;kernel32.dll

Его точку входа определил по AdressOfEntryPointer+ImageBase.
смотрел через Hiew.

Не пойму какого хрена во втором случае в .00401007 стоит 0cch?

Я его точно в отладчик не запускал, exe`шник создал с помощью
masm32 v5.12.


Дата: Сен 18, 2004 18:28:49

„Решился изучать программирование на асме под win32. “

Наконец-то :)

„Два случая: “

Гм. а исходник один :(

„Я его точно в отладчик не запускал“

Смещения сам выставил ?


Дата: Сен 18, 2004 18:31:40

секция импорта выровнена по дв слову, а между секциями могут быть случайные байты, которые в это время в памяти были (я так думаю ;)


Дата: Сен 18, 2004 20:03:14

Shoo
логично, а можешь че нить такое сам на бацать?

2)Мне понравились ключи дла ml.exe - /Fl, /Sg, а как их вкрутить в:
@echo off
ml /c /coff /Cp first.asm > first_error.txt
link /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib first.obj >> first_error.txt
del first.obj


Дата: Сен 18, 2004 20:38:12

bagrus,по поводу кода:

.386
.model flat,stdcall
option casemap:none
include c:\utils\masm32\include\kernel32.inc
includelib c:\utils\masm32\lib\kernel32.lib
.data
.code
natali:
invoke ExitProcess,0
end natali

2.bat:
@echo off
ml /c /coff /Cp /Sg /Sn /Fl2.lst 2.asm > 2_error.txt
link /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib 2.obj >> 2_error.txt
del 2.obj

в лиснинге этого 0cch нет, но как токо грузишь его в hiew сразу
появляется int 3 и потом jmp dword ... :( см. выше.

ЗЫ: До меня дошло как делать листинг, но как убрать из него вывод
всех инклудов к примеру kernel32.inc, windows.inc? Уж больно они
листинг маленьким делають :)

А на решение изучать винду повлияло то, что чуть ли не каждый знако-
мый кодит ЯВУ такие проги себе и стоко проблем для себя на компе ре-
шает. А я вот юзверь решил в совокупности им маленькие зверьки под-
кидывать, который в каждом exe`шнике PE/0/0 будут делать PE/1/1 им
ведь в лом изучать PE формат. Я как то поменял сдури полдня потом ду-
мал, а че это у меня файл не воркает? :)))


Дата: Сен 19, 2004 04:22:53

EvilsInterrupt > Не пойму какого хрена во втором случае в .00401007 стоит 0cch ... в лиснинге этого 0cch нет
Листинг генерируется только для исходного текста.

shoo > секция импорта выровнена по дв слову, а между секциями могут быть случайные байты
Секция действительно выровнена, но байты не случайные. 0CCh используется для предотвращения выполнения программы. Представьте, что в конце программы нет вызова ExitProcess'а программа продолжит выполняться и дойдет до вызова импортируемых функции.

EvilsInterrupt
как убрать из него вывод всех инклудов
Читай документацию по ассемблеру, например, для masm'а можно использовать директивы .nolist/.xlist и .list для исключения любых кусков программы из листинга.
...
.nolist
include windows.inc
include <other>
.list
...


Дата: Сен 19, 2004 04:44:32

А что, выравнивание кто-то уже отменил?


Дата: Сен 19, 2004 10:41:22

>директивы .nolist/.xlist и .list для исключения любых
честно скажу в моей инфе я этого не видел, но спасибо что ткнул пальцем

Volodya
Выравнивание? но почему не нулями?


Дата: Сен 20, 2004 08:24:00

Пардон за вопрос, плохо прочитал ответ q_q


Дата: Сен 20, 2004 09:22:07

„а можешь че нить такое сам на бацать? “

1.если очень нужно - канэшна магу, только не быстро - на работе хотят чтобы я работал (странные люди ;) дома - женщины (с асмом не совместимы) остается только рано утром, пока они спят ;)
2.2 года эпизодически изучаю асм и вин32, но такая проблема меня не пекла (думаю, это вопрос второго этапа ;)
3.как меня достал буратино!!!!!! 3 недели подряд каждый вечер читать ребенку одно и тоже!!!!!! (другое не катит ;)


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.063