好久没写过文档了,今天把之前的关于逆向剖析的一些心得总结一下,横竖闲着也是闲着(本文不包罗什么新的手艺,只是未来源于各方的知识加上自己的心得举行总结而已,妙手就不用看了)。 我以为软件平安攻防其本质是剖析与抗剖析之间的斗争。由于无论平安手艺做的何等先进,一旦其代码意图被剖析者掌握,就不在有平安性可言。想要更快速的剖析程序不只要领会林林总总的软件保护措施,还需要加倍清晰的熟悉逆向剖析手艺。下面简朴的谈谈我对逆向工程的一些心得。 我以为逆向剖析从总体上主要可以分为代码结构、数据结构、运算三点,以下举行详细说明(限于篇幅,下面只是纲领模式,详细内容信赖网上都可以查到)。 注:对于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. 通过组织函数识别类与类的关系。
换代以后的哈弗H9,凭着三把锁、坦克掉头等强劲的越野车配备取得成功完成逆转,遭受变成许多 越野车发烧友的亲睐。另外H9也出示了丰富多彩的主备安全性配备和舒服配备,也是一台很合适远途穿越重生的硬派SUV...
这次的抠图相对以往,有一个很大的不同——保留了阴影。我们平时所理解的抠图,通常是只保留主体,阴影肯定是不要的。但是在某些特殊场景下,将阴影保留则更能凸显质感,显得更为真实。本次教程从两个方面介绍——调...
投资赚钱(特殊时期赚钱越难,投资越重要)特殊时期,在家学投资理财,怎么开始呢? 一个人的投资能力,决定了他活得好不好。经此一“疫”,为了增长财富能力,很多人都会重新审视投资理财这件事。那怎么...
花枝丸是啥(成都网红“花枝丸”) 前不久我们在互联网上找到一家知名度很独特的花枝丸,可是因为日程安排不回来,一直沒有机遇去亲自感受,之后在一位成都市朋友的强烈推荐下,大家“毛起吃”的漂亮小姐姐才决策前...
《约定期间爱上你》是依据小说改编的,讲的是创作者苏简安和创业投资行业巨头陆薄言中间先婚后爱的小故事,任言恺和程小蒙出演,俊男美女小甜剧的配搭哦。那麼承诺期内爱上了你取材于什么小说?承诺期内爱上了你小说...
美国是中国留学生选择留学的热门大国,那么在如此多的专业中选择一个自己喜欢并对自己未来有帮助的专业,确实是不那么容易。那么立思辰留学360小编就给大家整理了下美国十大留学热门专业并给大家推荐了一些学校。...