基础:如何用OD找到Hello World的main函数

首先从百度上下载一个Hello World的文件,如下图所示。当然,你也可以自己使用vc6.0或vc2012自己写一个Hello World的文件,至于怎么写我就不详细描述了,不会的可以自己百度,很简单的。 基础:如何用OD找到Hello World的main函数_第1张图片OD调试用到的一些基本指令

| 指令 | 快捷键 | 含义 |
Restart | Ctrl+F2 | 重新开始调试
Step Into | F7 | 执行一句命令,若遇到CALL命令,则进入函数代码内部
Step Over | F7 | 执行一句命令,若遇到CALL命令,仅仅执行函数自身,并不跟随进入函数内部。
Execute till Return | Ctrl+F9 | 在函数代码内部时运行,一直遇到RETN返回命令,从而跳出CALL函数。

一 用OD打开Hello World.EXE文件

下面是我的OD打开的初始界面基础:如何用OD找到Hello World的main函数_第2张图片先选择OD界面左上角的文件,选择打开,然后找到你下载/编写好的Hello World.EXE的文件。基础:如何用OD找到Hello World的main函数_第3张图片

文件打开后如下图所示

程序断在了004011A1这个地址,这个地址即为Hello Worl.exe执行的起始地址,我们从这个地方开始进行调试

基础:如何用OD找到Hello World的main函数_第4张图片

首先,我们点击F7,进入004011A1地址处的CALL函数

基础:如何用OD找到Hello World的main函数_第5张图片

进去后我们并没有看到和main函数有关的信息,因此我们选择使用CTRL+F9跳出函数。当我们跳转到RETN时,可以选择使用F7或F8,运行RETN命令,从而跳出004011A1处的CALL函数。

基础:如何用OD找到Hello World的main函数_第6张图片

当我们从函数中出来后,我们会发现我们现在跳转到了004011A6处的JMP函数。然后我们F7进入JMP函数。基础:如何用OD找到Hello World的main函数_第7张图片

进入后我们发现我们在00401026这个地址,使用F8,我们跳过这个函数。下面有两个CALL函数,我们先跟进第一个看看,使用F7进入。这时我们会发现,0040102D函数内部同样没有我们所要找的main函数的信息,因此我们CTRL+F9,跳出,和上述方法一样。基础:如何用OD找到Hello World的main函数_第8张图片

继续跟进下一个CALL函数,F7跟进。进去后我们会发现同样没有什么东西,因此我们选择跳出,使用相同的方法继续往下走。基础:如何用OD找到Hello World的main函数_第9张图片

然后我们一直往下跟,就这样我们跟到了0040111F处的CALL函数,进去看看。基础:如何用OD找到Hello World的main函数_第10张图片

进去后我们发现这里面就是我们所需要的main函数基础:如何用OD找到Hello World的main函数_第11张图片

继续往下跟,到0040100E处的CALL函数。这个地方是微软官方的一个API,让它执行后就是我们的信息框了基础:如何用OD找到Hello World的main函数_第12张图片

你可能感兴趣的:(OD)