好久没写过文档了,今天把之前的关于逆向剖析的一些心得总结一下,横竖闲着也是闲着(本文不包罗什么新的手艺,只是未来源于各方的知识加上自己的心得举行总结而已,妙手就不用看了)。 我以为软件平安攻防其本质是剖析与抗剖析之间的斗争。由于无论平安手艺做的何等先进,一旦其代码意图被剖析者掌握,就不在有平安性可言。想要更快速的剖析程序不只要领会林林总总的软件保护措施,还需要加倍清晰的熟悉逆向剖析手艺。下面简朴的谈谈我对逆向工程的一些心得。 我以为逆向剖析从总体上主要可以分为代码结构、数据结构、运算三点,以下举行详细说明(限于篇幅,下面只是纲领模式,详细内容信赖网上都可以查到)。 注:对于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. 通过组织函数识别类与类的关系。
工业生产经历低谷 第二季度GDP预计下滑超10%德国化工行业在经历黑暗的第一季度后,对2020年的整体预期同样灰暗。图为德国化工巨头位于路德维希港的大型工厂。(图片来源:德新社)刚完成政府救助谈判...
平时喜欢看电视剧的人应该都知道,一般在早上的时候,和尚都会有打坐的时间,大部分的时候和尚也比较喜欢静静的打坐,而据最新的研究表明,相比于正常人来说,这些潜心研究道家学问的和尚的存活年龄比一般人要长得多...
全能破译qq密码的手机软件(手机微信免登陆密码登陆器)它是“5G将更改全部互联网技术绿色生态”系列产品文章内容第二篇第一篇是:互联网技术绿色生态中,网友是造物主,也是羊如今,无论你应用哪些互联网运营,...
我被骗了,网上找了一个黑客帮忙,又被黑客骗了,我好惨。有诚信黑客先做事后付款的那种吗?24小时在线等! 先来说说我被骗的经历: 前前男友吧,那个死渣男,说着我就来气。他自己挣不到啥钱,...
找手机密码解黑客相关问题 求黑客联系方式官网相关问题 黑客通过什么来黑取账号 怎么用网络扒一个人黑历史(网络的发展历史)...
if os.path.exists(filename): 进程三:使命履行及实时数据剖析现在的许多运用运用API来调用微服务或许履行某些动作或许监督用户的行为。 这种API规划和结构关于客户和运用程...