『香`草の゛芭芙 发表于 2012-7-22 16:27:17

关于OllyDebug~~~

00401000 >/$6A 00            push 0x0                      ; /Style = MB_OK|MB_APPLMODAL
00401002|.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:}

大头石 发表于 2012-7-22 16:27:18

PUSH进去的永远都是都是后面紧跟的数据。例如PUSH xxx就是把xxx入栈,至于这数据的含义是什么,就看你怎么用了。例如这里PUSHs四个参数,作为MessageBox的参数,你说的那两句就作为指针使用了。因为该函数就是这样使用的。:$

梦想与现实 发表于 2012-7-22 16:34:37

push Test.00402010   

是push 内存单元的内容

push 文件名.00402010    的这种格式 只是在OD是这样显示的
就算你写成 push 00402010在OD里面也会显示成 push 文件名.00402010 这样的格式

大头石 发表于 2012-7-22 17:25:49

至于那格式问题就是楼上仁兄所说的,其实OD就是为了跟友好而已,文件名在这里没意义。
页: [1]
查看完整版本: 关于OllyDebug~~~