前面一章讲述了一个简单的 exe 智能反汇编引擎推导实现方法,但是实际操作要比上文要困难的多,
其中涉及很多烦琐的细节, 这里不进行进一步的讨论。
现在公认静态分析比较强的工具是 ida, 它有的智能反汇编和灵活的人工参与方式都是同类软件没法相比的。

这里讨论就是利用其强大的反汇编引擎,做一个把 ida 的汇编结果直接输出为可利用性极高的 obj 文件,
减轻逆向成本(ida 的插件机制和很丰富的接口提供实现的可能)。

通常逆向代码的过程,首要找到感兴趣关键代码段,然后摸清其具体的意图(大多这个时候是不知道或不用知道其实现方法,
只要明白其最终的实现目的即可),然后一行一行的稍加修改引到自己的代码中(这个过程主要是汇编码), 更加有难度就是
将其还原为高级语言, 在把其引入自己代码中的时候,这个过程需要发很多时间进行修改和调试,此时也是了解其 Why 时候。

我先说一下,这个工具的主要就是免掉上面所述的第二步,只要结合 ida, 如果有必要,为你想要的函数或过程和全局数据
起个起意义的符号名即可。工具将根据 ida 提供的 name list 和 xref list, 来拆解所有你想要的“符号”(下面所说的符号,
即是函数也是数据,这也是连接器要使用的唯一概念)的关联关系。
按照 coff obj 文件格式,把符号按其属性归类,并且每个分配唯一的索引。
先把符号定义写到所属的节中,按照 ida 提供的引用关系,把每个符号的引用项清零(这里你可能听不太懂,有空想个更好的表达),
将其引用的符号的索引写到节的符号引用表中,最后把所有的符号名和其索引,所在节的索引,符号类型(extern or static ..)
写到全局符号定义表中(详细 coff 细节可以参看 slinker, obj2asm)

关于 obj 的使用,不用我在说了(可以直接链接,或用 lib.exe 转换为 lib 文件,这样别人的代码就和你骨肉不分了)。
突然想到一点,对有符号文件的可执行文件(比如 ms, 因为其符号名很有意义哦),那么转换出的 obj 可利用性将更高呵呵。

表达能力有限,xx 理论的东西就是这些下面将进行具体编码操作了。
希望出来后,有一点作用 -_-!!。

基于 ida 的反汇编转换 Obj 的可行性 笔记(2)相关推荐

  1. 基于 ida 的反汇编转换 Obj 的可行性 笔记(1)

    标 题: [原创]基于 ida 的反汇编转换 Obj 的可行性 笔记(1) 作 者: dummy 时 间: 2007-08-18,16:33 链 接: http://bbs.pediy.com/sho ...

  2. ida pro 反汇编 Android so 库后修改 arm 汇编指令的方法总结

    1 前言 最近博主在学习Android逆向的时候,参照吾爱破解论坛的<教我兄弟学Android逆向系列课程>学习的时候,学到第8章<教我兄弟学Android逆向08 IDA爆破签名验 ...

  3. 软件开发基于JavaScript实现快速转换文本语言(繁体中文和简体中文)_javascript技巧

    软件开发基于JavaScript实现快速转换文本语言(繁体中文和简体中文)_javascript技巧 一般商业网站都有一个语言的需求,就是为了照顾使用正体中文的国人,会特地提供一个切换到正体中文的选项 ...

  4. 基于ARM核心板实现的BMS可行性方案

    近日,国家发展改革委.国家能源局印发<"十四五"新型储能发展实施方案>(以下简称<方案>).<方案>提出,到2025年,新型储能由商业化初期步入 ...

  5. 软件开发基于JavaScript实现快速转换文本语言

    软件开发基于JavaScript实现快速转换文本语言 一般商业网站都有一个语言的需求,就是为了照顾使用正体中文的国人,会特地提供一个切换到正体中文的选项(或曰"繁体中文").传统做 ...

  6. 基于Python实现图画转换字符画

    微信改版,加星标不迷路! 基于Python实现图画转换字符画 作者:阿广 概述 前言 准备工作 识别原理 静态图像处理 动态图像处理 结果 阿广说 群聊交流 福利一刻 推荐阅读 前言 前几天写了基于P ...

  7. Cesium - 转换obj模型为3D Tiles 并加载

    先下一个工具:此工具要有nodejs才能用: https://github.com/PrincessGod/objTo3d-tiles: 再下一个:链接:https://blog.csdn.net/j ...

  8. [系统安全] 三.IDA Pro反汇编工具初识及逆向工程解密实战

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  9. densepose安装_基于DensePose的姿势转换系统,仅根据一张输入图像和目标姿势

    DensePose团队在ECCV 2018发表又一杰作:密集人体姿态转换!这是一个基于DensePose的姿势转换系统,仅根据一张输入图像和目标姿势,生成数字人物的动画效果. DensePose 是  ...

最新文章

  1. 单片机开发工程师需要学哪些,单片机工作的基本条件
  2. Python matplotlib可视化:自定义轴标签格式化函数(在轴刻度上添加自定义的数值以及符号形式)、使用自定义函数在Matplotlib中为坐标轴刻度添加自定义符号(例如,货币符号¥$等)
  3. 计算机网络实验课,【课堂】师生同上一节计算机网络实验课
  4. java实现二进制转十六进制
  5. python 与或非_Java、PHP和Python各有什么优势 分别能做什么
  6. elementui :on-remove怎么用_绍兴【办公室绿化】怎么操作
  7. 我在 B 站学习深度学习(生动形象,跃然纸上)
  8. 知识分享|日本面试常考问题+巧妙回答①
  9. SQL中,把SQL查询分析器查询出来的结果,导出到EXCEL表格
  10. 海尔手机V73 PC套件安装使用说明 管理好你的电话簿
  11. 奇异矩阵和非奇异矩阵 行列式矩阵简单理解 代数意义 几何意义 行列式的定义: 二阶行列式的几何意义: 三阶行列式的几何意义: 行列式化为对角形的几何解释: 二阶行列式乘积项的几何意
  12. R语言使用survival包的Surv函数创建生存对象、建立Cox回归模型(包含所有协变量)比较不同治疗方法生存率的差异、使用step函数基于AIC指标进行逐步回归法cox模型特征筛选(变量筛选)
  13. 淘宝/天猫:畅销榜 API 返回值说明
  14. 反向代理实例一 访问一个域名 代理到另一个服务 nginx 200323
  15. Foxdisk11-小字库显示汉字2
  16. Laszlo 和 LZX 的 一些概念
  17. 网络爬虫是什么意思,可以实现什么效果
  18. java监控cpu绘图,java gateway监控cpu使用率
  19. 1218学习笔记——kvm上vm+vtpm(IMA)
  20. 如何和产品潜在的客户沟通

热门文章

  1. HelloWorld程序的代码编写
  2. MapReduce-Reduce端join操作-Reducer阶段代码
  3. CentOS系统参数优化
  4. 内存溢出与内存泄漏区别
  5. Bootstrap全局css样式_图片,响应式工具
  6. python getattr_python __getattr__
  7. 老的消息中间件投递失败的类型值_图文结合了解一下Java消息中间件的概述
  8. koa2 mysql增删改查_react+koa2+mysql零门槛的全栈体验,附上完整项目分享
  9. d3中文案例_D3.js柱状图例子
  10. 【小题目】输入一个数字表示重量,如果重量<=20,则每千克收费0.35元;如果超过20千克不超过100千克的范围,则超过的部分按照每千克0.5元收费;如果超过100千克,则超过的范围按照每千克0.8元