前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IDA寻找main函数

IDA寻找main函数

原创
作者头像
阿婆
修改2019-07-29 11:21:10
7.5K0
修改2019-07-29 11:21:10
举报

第一步

打开程序之后按下空格键,到流程图这里,找到jmp,双击后面的名字,跳转
打开程序之后按下空格键,到流程图这里,找到jmp,双击后面的名字,跳转

如果空格到不了,就在export中寻找OEP入口点,往下拉过两个函数,第三个函数里面的call就是main函数

OEP找到第二个call进去之后,流程图中exit上面的特征码code上面的函数就是main函数
OEP找到第二个call进去之后,流程图中exit上面的特征码code上面的函数就是main函数

第二步

流程图中
流程图中

找到第二个call指令

函数中
函数中

同样,双击,跳转到函数里面

第三步

这里是第二个函数双击后到达的位置
这里是第二个函数双击后到达的位置

一直向下寻找,直到找到一个call指令前面紧跟着3个push(因为main函数的参数有三个,这三个push是将参数压入栈的操作,寻找方式与OD类似),此时双击call后面的函数名,进入后到达main函数。

***********************************************************************************************

上面的方法适用于12版左右的vs,总是现在的vs2017不能用这种方法找,是找不到的,具体如下:

在你找三个push的时候发现找不到了,这个时候就要找三个连续的call,看图:

中间的那个call是我们想要的call,它的特点是前后都跟着一个call,并且上面一个代码是add esp,4
中间的那个call是我们想要的call,它的特点是前后都跟着一个call,并且上面一个代码是add esp,4

点进中间的call,之后

这个时候从上往下数的第四个call就是我们想要的main函数了,点进去看看吧
这个时候从上往下数的第四个call就是我们想要的main函数了,点进去看看吧
没错,是我们想要的main函数
没错,是我们想要的main函数

如果想要从后往前寻找到最开始的函数,在code上点击右键,选择第一个选项查看交叉调用的地方xxxxx to...往前查找

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一步
  • 第二步
  • 第三步
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档