BP CreateFileA
想问一下,你这样子下断后,f9运行了到断点,是不是就f8单步对比走法??
可是我为什么就不能走得到这里呢???你要按多少次F8呢??
我下断后,F9后就到了kernel32程序中了,到了下面的地址
7C801A28 >8BFF MOV EDI,EDI
7C801A2A 55 PUSH EBP
7C801A2B 8BEC MOV EBP,ESP
7C801A2D FF75 08 PUSH DWORD PTR SS:
7C801A30 E8 CFC60000 CALL kernel32.7C80E104
7C801A35 85C0 TEST EAX,EAX
7C801A37 74 1E JE SHORT kernel32.7C801A57
7C801A39 FF75 20 PUSH DWORD PTR SS:
7C801A3C FF75 1C PUSH DWORD PTR SS:
7C801A3F FF75 18 PUSH DWORD PTR SS:
7C801A42 FF75 14 PUSH DWORD PTR SS:
7C801A45 FF75 10 PUSH DWORD PTR SS:
7C801A48 FF75 0C PUSH DWORD PTR SS:
7C801A4B FF70 04 PUSH DWORD PTR DS:
7C801A4E E8 9DED0000 CALL kernel32.CreateFileW
7C801A53 5D POP EBP
7C801A54 C2 1C00 RETN 1C
7C801A57 83C8 FF OR EAX,FFFFFFFF
7C801A5A^ EB F7 JMP SHORT kernel32.7C801A53
再F8单步走时,7C801A37 74 1E JE SHORT kernel32.7C801A57这里不能实现跳转,
再运行到了这里7C801A54 C2 1C00 RETN 1C,
这一步会出错了,再按F8就到了
错误:不知如何处理单步,因为内存地址B81408E1不可读,请尝试更改EIP,或将异常传递给程序。
下断后进入到kernel32.exe这里后,好像不能返回到程序领空了,请问怎么操作呢?? 它有三个自校验,BASE64、CRC32、MD5。这是用PPEID插件查到的。 请问一下, 我为什么不能到达
----返回到程序领空,一路F8下来
00491FBC .E8 DF2EF7FF CALL dumped_.00404EA0
00491FC1 .75 12 JNZ SHORT dumped_.00491FD5;关键跳
;-------将jnz nop掉--去掉了自校验
00491FC3 .B8 E0930400 MOV EAX,493E0
00491FC8 .E8 3F13F7FF CALL dumped_.0040330C
这里呢????
/:L 你是不是没有返回到程序领空就按F8了?
下GetFileSize断点
----断在这里
7C810B07 >8BFF MOV EDI,EDI ; ntdll.7C910208
7C810B09 55 PUSH EBP
7C810B0A 8BEC MOV EBP,ESP
7C810B0C 51 PUSH ECX
7C810B0D 51 PUSH ECX
7C810B0E 8D45 F8 LEA EAX,DWORD PTR SS:
7C810B11 50 PUSH EAX
这里断下后,OD是在系统领空的(一般可以看OD窗口的标题中"模块-"字样后面的名称,如果是调试程序的名称就是在程序领空)
你要按ALT+F9(一下不行就多几下,直到回到程序领空)
或CTRL+F9(一下不行就多几下,直到回到程序领空)
或在堆栈里找到返回程序领空的地方.双击一下就可以了.
到了系统领空后再按F8....
/:001 /:001 /:001 乱说一通,不知道听明白了没
[ 本帖最后由 hflywolf 于 2008-9-21 23:55 编辑 ] 这样返回懂了。
只是这样对比二个窗口,好难。。。。。。。。。。。。 这个自校验是在网络上的,我用单机未联网,重新脱壳后就没有自校验了,而且也没有BASE64、CRC32、MD5,如果是用联网脱壳的程序在单机上运行就出错。
页:
1
[2]