关于OllyDebug~~~
00401000 >/$6A 00 push 0x0 ; /Style = MB_OK|MB_APPLMODAL00401002|.68 10204000 push Test.00402010 ; |Title = "恭喜"
00401007|.68 15204000 push Test.00402015 ; |Text = "当您看到这个信息的时候,您已经可以编译Win32汇编程序了!"
0040100C|.6A 00 push 0x0 ; |hOwner = NULL
0040100E|.E8 07000000 call <jmp.&user32.MessageBoxA> ; \MessageBoxA
00401013|.6A 00 push 0x0 ; /ExitCode = 0
00401015\.E8 06000000 call <jmp.&kernel32.ExitProcess> ; \ExitProcess
0040101A $- FF25 08204000 jmp dword ptr ds:[<&user32.MessageBoxA>] ;user32.MessageBoxA
00401020 .- FF25 00204000 jmp dword ptr ds:[<&kernel32.ExitProcess>] ;kernel32.ExitProcess
这是WIN32汇编教程的程序, 上面是用od载入之后的结果。
00401002|.68 10204000 push Test.00402010 ; |Title = "恭喜"
00401007|.68 15204000 push Test.00402015 ; |Text = "当您看到这个信息的时候,您已经可以编译Win32汇编程序了!"
这句 看不懂... 是push 00402010 这个偏移地址呢? 还是push 00402010的内存单元里的内容?
还有 push 有这种格式吗 push 文件名字.偏移地址 ????{:5_96:}
PUSH进去的永远都是都是后面紧跟的数据。例如PUSH xxx就是把xxx入栈,至于这数据的含义是什么,就看你怎么用了。例如这里PUSHs四个参数,作为MessageBox的参数,你说的那两句就作为指针使用了。因为该函数就是这样使用的。:$ push Test.00402010
是push 内存单元的内容
push 文件名.00402010 的这种格式 只是在OD是这样显示的
就算你写成 push 00402010在OD里面也会显示成 push 文件名.00402010 这样的格式
至于那格式问题就是楼上仁兄所说的,其实OD就是为了跟友好而已,文件名在这里没意义。
页:
[1]