好久没写过文档了,今天把之前的关于逆向剖析的一些心得总结一下,横竖闲着也是闲着(本文不包罗什么新的手艺,只是未来源于各方的知识加上自己的心得举行总结而已,妙手就不用看了)。 我以为软件平安攻防其本质是剖析与抗剖析之间的斗争。由于无论平安手艺做的何等先进,一旦其代码意图被剖析者掌握,就不在有平安性可言。想要更快速的剖析程序不只要领会林林总总的软件保护措施,还需要加倍清晰的熟悉逆向剖析手艺。下面简朴的谈谈我对逆向工程的一些心得。 我以为逆向剖析从总体上主要可以分为代码结构、数据结构、运算三点,以下举行详细说明(限于篇幅,下面只是纲领模式,详细内容信赖网上都可以查到)。 注:对于Debug版本和Release版本程序的处置思绪上是一致的,因此下面没有稀奇区分。但实现方式却有很大区别,许多Release版本代码处置方式我还在试探中,因此就不写了。 一. 代码结构。 代码结构决议了程序的执行历程以及数据走向。首先明白程序的代码结构,可以把整个程序的框架给勾勒出来。接下来举行各个部门的粉饰。可以有用提高逆向速率。代码结构剖析总的分为以下几点: 1. 对照操作。 A. 有符号数对照。 B. 无符号数对照。 C. 条件码(种种条件码的组合判断我记不住,可以列成表格以便查询。平时用上的不多,除非要正确还原代码)。 2. 条件分支。 A. 单分支条件(if)。 B. 双分支条件(if-else)。 C. Switch条件。 D. 组合条件。 E. 纯算术实现逻辑分支(运算后条件码的判断,详细可参看加密解密第三版)。 F. 条件设置指令(SETcc)。 G. 条件传输指令(CMOVcc)。 3. 循环。 A. 先执行循环(do-while)。 B. 后执行循环(for/while)。 C. 循环控制及break/continue。 4. 函数。 A. 函数挪用及功效的快速识别。 B. 挪用约定。 C. 参数通报方式。 D. 客栈平衡。 E. 函数导出及导入。 5. 代码优化。 A. 代码速率优化。 B. 代码巨细优化。 二. 数据结构。 当识别了代码结构并勾勒出整个代码框架之后,接着要做的就是识别程序中的种种数据结构。好比程序是一棵大树,现在已经有了枝干,我们要做的就是添加树叶。数据结构的剖析我主要分为以下几点。 1. 客栈(Debug版与Release版的客栈使用有很大区别)。 2. 全局变量。 3. 局部变量。 A. 客栈中的局部变量识别。 B. 寄存器变量。 4. 变量的导入导出。 5. 常量。 6. 数组。 A. 简朴数组。 B. 多维数组。 7. 结构体与联合体。 8. 链表。 A. 单向链表。 B. 双向链表。 C. 循环链表。 D. 二叉树。 E. 图等高级链表我没逆向过。写在这里只是说明一下思绪。 9. 类。 Release版程序的类的还原我现在还不是很熟悉。对于Release版没被使用过的类成员的剖析还在试探中。 A. 成员变量。 B. 通俗成员函数(容易与编译器默认的组织函数混淆)。 C. 虚函数表及继续派生。 D. 通过组织函数识别类与类的关系。
相信现在有很多的朋友们对于一套房子可以写几个人的名字都想要了解吧,那么今天小编就来给大家针对一套房子可以写几个人的名字进行一个介绍吧,希望小编介绍的内容能够为大家起到帮助哦 一套房子除了没有独立生活的...
海外网12月27日电 美国有线电视新闻网(CNN)26日报道称,美国当天迎来一个严峻的“里程碑”,即平均每1000名美国人中,就有一人死于新冠肺炎。 美国人口普查局估算,截至12月最后一周,...
找黑客远程监听别人手机软件相关问题 全球顶级黑客排行榜相关问题 电脑被黑客了怎么办 黑客什么时候学最好(黑客帝国4什么时候出)...
北京市商务高端花费8088米价目表【何瑶】 今日给大伙儿共享的內容是“北京市商务高端花费8088米价目表【何瑶】”,我是何瑶,来源于乌鲁木齐,2020年18岁,做为岗位:招聘人员,我喜爱我的岗位:招聘...
互联网的发展到今日,在我国应当算作十分普及化了,伴随着智能机的发布和普及化,大家慢慢从PC端转为了移动互联时期,另外伴随着各层面的对网络信息安全观念的普及化,一般的骗局很有可能能被大家揭穿,但今天我说...
怎么恢复微信聊天记录?每个人的微信记录都有想保留不想删除的,但是有的人却不知道左滑就把聊天记录删除了,需要这个记录的时候一找却发现没有了,才知道原来左滑就把聊天记录删除了,这时候才慌了,记录都没有...