自制反汇编逆向分析工具 迭代第五版本 (一)
这个版本添加了几个功能,分开几篇来写。
本篇是关于这样一个功能,显示选定的条件指令与其它条件分支的关系。
它们的关系分别在初版分支形态分布图,和第二版的汇编代码对应图同样展示。
红色表示被选中的目标
蓝色表示被选定的指令的执行位置之前,可能因为条件跳转而直接跳入到被选中的条件分支内(,忽略该条件判断)。
绿色表示在被选中的条件分支内,因为其它条件跳转而直接离开目前分支的代码。
紫色表示在被选中的条件分支内,无条件跳转分支并且直接离开目前分支的代码。
浅紫色表示在被选中的条件分支内,无条件跳转分支但仍然在目前分支代码内。
浅灰色表示与被选中的条件分支的关系是,包含,或被包含,和并列,与被选中的条件指令的关系比较简单,不给与高亮警示。
使用时可以在逆向分析过程中,定位在关注范围内细致分析。
也可以单步向前查看跳转的关系变化,如下面的4张效果图:
在逆向分析过程中,根据跳转的关系形态就可以选定一种分支结构模式来进行进一步套用分析。
最简单的就是包含关系,(并无蓝线,绿线,紫色出现),可以套用模式:
1 2 3 4 5 | if (!) { if (!) { // ... } } |
以及同样简单的是并列关系, (并无蓝线,绿线,紫色出现,但并不互相包含和被包含),可以套用模式:
1 2 3 4 5 6 7 | if (!) { } if (!) { } // ... |
有其它颜色的话就要具体分析,应用某种分支结构模式来逆向。
这个功能就介绍到这里,也是这个工具的基本出发点。
分支结构就像是函数机器码的组织结构,如果不清楚分支结构(组织结构)去逆向分析一段反汇编代码,就如读丢失了分区组织信息的分区数据一样。
逆向深入objc,c++
windows下仿objc动画层UI引擎
标签:
逆向
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统