IDA使用初探-2.了解栈
2012-09-25 00:39
260 查看
在VC6 中新建一个控制台应用程序工程IDA_B,文件内容为一个空的main函数,使用Debug方式编译,保留PDB。
打开IDA,进入主工作界面。将VC6生成的可执行文件IDB_B.exe加载。加载完毕就进入逆向工作界面。
将不用的子窗口关闭,把IDA View-A子窗口最大化,点右键选择Text view显示偏移量。此次主函数直接显示为main,因为IDA从VC++编译产生的可执行文件中找到了符号表,能够对符号进行解析。
在push ebp那一行上按F2键设置断点,选择菜单Debugger下的Start process(也可以按F9键)来开始调试。调试会让程序在电脑中执行,所以IDA会提示注意提防恶意程序、病毒和木马。
点确认进入调试界面,由多个看似分离的窗口组成,不再是原来的一个窗口中多分页标签的形式。各个观察窗口独立出来了,一个是反汇编窗口。
一个是堆栈地址窗口。
一个是寄存器窗口。
在寄存器窗口中显示着每个寄存器当前的值和对应在反汇编窗口中的内存地址。函数在进入时都会保存堆栈地址EBP和ESP,退出函数时恢复。
按F8键一行一行单步执行,可以看到栈顶在往上涨。
此处只是简单的注释了空函数的反汇编流程,关于main的前前后后,以后会专门写一遍文章的,此处主要学习IDA的各个窗口,就不多言了。
IDA不提供撤销功能,如果不小心按下某键,导致IDB数据库文件发生意外,是无法进行回退操作的。
IDA加载完程序后,3个立即可见的窗口分别为IDA-View,Named,和消息输出窗口。
反汇编窗口有两种显示格式:面向文本的列表视图和图形视图。不同视图在不同的场景下各有所长,按空格键可以快速切换。
IDA图形视图会有执行流,Yes箭头默认为绿色,No箭头默认为红色,蓝色表示默认下一个执行块。
至于IDA其他窗口,函数、二进制数据、导入表、导出表、字符串等窗口,未来根据需要再说吧。很晚了,现这样,晚安。
打开IDA,进入主工作界面。将VC6生成的可执行文件IDB_B.exe加载。加载完毕就进入逆向工作界面。
将不用的子窗口关闭,把IDA View-A子窗口最大化,点右键选择Text view显示偏移量。此次主函数直接显示为main,因为IDA从VC++编译产生的可执行文件中找到了符号表,能够对符号进行解析。
在push ebp那一行上按F2键设置断点,选择菜单Debugger下的Start process(也可以按F9键)来开始调试。调试会让程序在电脑中执行,所以IDA会提示注意提防恶意程序、病毒和木马。
点确认进入调试界面,由多个看似分离的窗口组成,不再是原来的一个窗口中多分页标签的形式。各个观察窗口独立出来了,一个是反汇编窗口。
一个是堆栈地址窗口。
一个是寄存器窗口。
在寄存器窗口中显示着每个寄存器当前的值和对应在反汇编窗口中的内存地址。函数在进入时都会保存堆栈地址EBP和ESP,退出函数时恢复。
按F8键一行一行单步执行,可以看到栈顶在往上涨。
此处只是简单的注释了空函数的反汇编流程,关于main的前前后后,以后会专门写一遍文章的,此处主要学习IDA的各个窗口,就不多言了。
IDA不提供撤销功能,如果不小心按下某键,导致IDB数据库文件发生意外,是无法进行回退操作的。
IDA加载完程序后,3个立即可见的窗口分别为IDA-View,Named,和消息输出窗口。
反汇编窗口有两种显示格式:面向文本的列表视图和图形视图。不同视图在不同的场景下各有所长,按空格键可以快速切换。
IDA图形视图会有执行流,Yes箭头默认为绿色,No箭头默认为红色,蓝色表示默认下一个执行块。
至于IDA其他窗口,函数、二进制数据、导入表、导出表、字符串等窗口,未来根据需要再说吧。很晚了,现这样,晚安。
相关文章推荐
- IDA使用初探-1.启动IDA
- 了解何时使用 Override 和 New 关键字(C# 编程指南)
- Gxt2.1中使用Gwt2.0开发模式.初探.java.lang.VerifyError问题解决
- Ida使用过程遇到的问题
- IDA使用之旅(三)实践中使用IDA工具
- LoaderManager使用详解(二)---了解LoaderManager
- IDA 使用小技巧
- simple_server了解和使用
- 快速了解微信小程序的使用,一个根据小程序的框架开发的todos app
- 深入了解Font字体的使用
- SQL Server 2005使用基于行版本控制的隔离级别初探(2) -- READ_COMMITTED_SNAPSHOT
- Git的基本了解与使用、向github提交代码
- 程序员的吸星大法-IDA反汇编工具初探
- 菜鸟了解Hudson CI--什么是CI/Hudson?怎样安装?怎样使用?
- 【初探HTML5之使用新标签布局】用html5布局我的博客页!
- Hybrid App 开发初探:使用 WebView 装载页面
- 转贴 全面了解setjmp与longjmp的使用
- (转)了解使用Android ConstraintLayout
- Hybrid App 开发初探:使用 WebView 装载页面
- effective stl 第34条:了解哪些算法需要使用排序的区间作为参数。