首页
社区
课程
招聘
[讨论]逆向工程核心原理_学习3
发表于: 2020-1-11 17:48 3499

[讨论]逆向工程核心原理_学习3

2020-1-11 17:48
3499

上篇文章记录

代码执行法的基本原理:程序功能非常明确时,逐条执行指令来查找需要查找的位置。仅适用于被调试的代码量不大,且程序功能明确的情况。

根据这篇文章测试的就是代码执行法,调试exe的过程中,main函数中的MessageBox函数会在某刻被调用执行,慢慢跟随代码直到调试到MessageBox函数为止。

扩展知识:Win32应用程序中,API函数的参数是通过栈传递的。VC++中默认字符串是使用Unicode码表示,处理字符串的API函数也全部变更为Unicode系列函数。

OllyDbg在初次载入待调试的程序时会先经历一个预分析过程,查看进程内存、程序中引用的字符串,和调用的API都会被摘录出来。注意:如果不是第一次的话,或者信息不全的话记得清理.udd .bak文件

扩展知识:VC++中,static字符串会默认保存为Unicode码形式。

观察程序的行为特征,事先推测出代码中使用的API,使用这个方法快速查找到需要的部分。
扩展知识:OllyDbg通过PE文件格式的IAT 导入地址表结构准确摘录出API名称的。暂时不用深究了解即可。

OllyDbg不能为所有可执行文件都列出API函数调用列表。使用压缩器/保护器工具对可执行文件进行压缩或保护之后,文件结构会改变。
扩展知识:

用程序执行某种操作时,API向OS提出请求,被调用API对应的系统DLL文件被加载到应用程序的进程内存。我们可以在DLL代码库被加载到进程内存后,直接向DLL代码库添加断点。



 
 

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

最后于 2020-1-11 17:49 被陈阿姨编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回