1.【逆向】IDA Pro
2.jsc反编译工具编写探索之路
3.反汇编和二进制分析工具清单
4.VB Decompiler Pro(VB反编译工具)v10.1中文版
5.3分钟理解反汇编
6.VB Decompiler Pro(VB反编译工具) V10.1中文版
【逆向】IDA Pro
IDA Pro是反汇一款由Hex-Rays公司出品的交互式反汇编工具,功能强大且操作复杂,编引需要用户具备专业知识。擎源器源其主要特性在于交互性和多处理器支持。码编码剖用户通过与IDA的译反交互来指导反汇编过程,而IDA则不会自动解决程序中的汇编lol盒子源码所有问题,而是反汇根据用户的指令找出可疑之处。用户的编引工作包括指定编译器类型、定义变量名、擎源器源结构体、码编码剖数组等。译反这种交互能力在处理大型软件时尤为重要。汇编IDA Pro支持常见的反汇处理器平台,包括位和位程序的编引分析。
IDA安装成功后,擎源器源桌面上会生成两个图标,分别对应位和位程序的分析。IDA支持的文件类型丰富,包括PE格式、DOS、UNIX、Mac、Java、.NET等平台的文件格式。打开目标文件,如ReverseMe.exe,IDA通常能自动识别其格式。IDA是按区块装载PE文件的,分析过程与程序大小及复杂程度有关,通常需要等待一段时间才能完成。
整个分析过程分为两个阶段,其中“Kernel optionl”、“Kernel option2”、“Processor option”这3个选项可以控制反汇编引擎的工作状态,一般使用默认设置即可。IDA会自动识别程序类型与处理器类型,大多数情况下,奇迹delphi源码分析选项的默认值在准确性与方便性之间提供了一个平衡。
合理配置IDA文件可以提高工作效率。配置文件idag.exe主要通过“Options”菜单进行,但这种配置仅对当前项目有效,在新建项目时会恢复默认配置。要改变默认配置,需要编辑idcfg文件。该文件包含用于控制反汇编行格式的选项。在IDA\CFG目录下查找ida.cfg和GUI配置文件idgaui.cfg。ida.cfg是一个文本文件,不能用Windows“记事本”程序编辑,建议使用EditPlus、UltraEdit、Notepad等工具。配置文件由两部分组成,第一部分定义文件的扩展名、内存、屏幕等,第二部分配置普通参数,如代码显示格式、ASCII字符串显示格式、脚本定义和处理器选项等。配置选项如OPCOE_BYTES、INDENTION、COMMENTS_INDENTION、MAX_TALL、MAX_XREF_LENGTH等,用于控制反汇编窗口的代码显示格式。
为了设置ASCII字符串风格,可单击“Options” ->“ASCII String styles”选项,打开字符串设置窗口。与ASCII字符串和符号相关的配置包括ASCII_GENNAMES、ASCII_TYPE_AUTO、ASCII_PREFIX等,用于生成符号名和设置ASCII字符串类型。同时,彩票pcdd源码IDA从7.0版本开始正式支持中文字符串的显示,但需要配置ida.cfg。在IDA\CFG目录下新建文件Chinese.clt,并修改ida.cfg中的ENCODING_CULTURES项目,增添“GB:Chinese”。
IDA界面专业且复杂,分析完目标程序后进入主窗口。IDA相对智能,会尽量分析程序各模块的功能,并给出相应的提示。对于IDA不能正常分析的代码,需要进行手工辅助分析。反汇编窗口有两种形式:图形视图和文本视图。导航栏提供快速跳转到相关代码处的功能,通过快捷菜单调整导航栏的显示比例。注释功能方便在代码后输入注释,通过右键快捷菜单进行操作。提示窗口用于反馈各种信息,如文件分析进度、状态信息、错误消息及IDA脚本或插件信息等。字符串窗口显示从二进制文件中提取的一组字符串,双击字符串可跳转到其所在位置的地址。输入窗口列出可执行文件调用的所有函数,双击函数可跳转至反汇编窗口的函数地址处。跳转到地址窗口允许在不知道地址的情况下,通过输入十六进制值快速定位代码。
在反汇编代码中,可以看到一些表示交叉参考的列。双击这些列或按“Enter”键可以跳转到调用处的地方。在“dest_misaligned”字符上按“X”键,即可打开交叉参考窗口。参考重命名功能可以将反汇编窗口中IDA识别并自动赋予函数的名称更改为有意义的名称,增加代码的可读性。标签功能允许用户为当前高亮区域加上标签,以便在离开这个位置后快速返回。赛马和源码格式化指令操作数功能可以将常量格式化成十六进制、八进制或二进制值,提高代码的可读性。手动干预创建、编辑、删除函数的权限,以更好地分析程序结构。代码和数据转换功能允许用户将十六进制数据指定为代码或数据,以区分数据和代码,解决工具在区分数据和代码时可能产生的问题。
IDA Pro的交互性和强大的功能使其成为反汇编领域的有力工具。通过合理配置和利用其丰富的功能,可以有效提高分析效率和准确性。
jsc反编译工具编写探索之路
研究逆向分析时,若遇到使用Cocos2dx编写的JavaScript游戏,理解其打包流程与开发工具是关键。Cocos2dx支持多种语言进行游戏开发,其中JavaScript与C++的结合尤其常见。在新版本中,编写的JavaScript代码经过编译生成jsc文件,这种二进制优化提升了游戏性能,同时也增加了逆向分析的难度。本篇内容将探索如何编写一款针对jsc文件的二进制反编译器。
首先,理解Cocos2dx+JavaScript的创建与打包流程是基础。通过下载Cocos2dx,配置环境,执行相关命令,可以创建并编译一个JavaScript游戏工程。此过程生成的jsc文件是经过编译与优化的,用于提升游戏性能。
在进行逆向分析时,首先要分析正向过程。以Cocos2dx+JavaScript的游戏为例,通过下载并运行测试工程,观察生成的星空源码网MyJSGame-desktop.app游戏程序,发现默认生成的js文件未加密,但需要通过jscompile命令将js编译为jsc格式。
网络上搜索jsc反编译工具时,发现可能存在工具限制或兼容性问题。在尝试使用dead仓库中的工具进行反编译时,遇到了失败的情况。这提示我们,寻找现成工具并非万能,可能需要深入理解底层技术。
SpiderMonkey作为一款由Mozilla公司开发的JavaScript执行引擎,提供了方便的API接口,用于执行和编译JavaScript脚本文件。通过研究dead.c文件中的相关代码,可以初步了解jsc反编译的工作流程。核心在于JS_DecompileScript()函数,它负责完成反编译工作。然而,Cocos2dx在编译jsc时并未包含源代码数据,导致反编译工具无法获取有效的源代码信息。
深入分析Cocos2dx中关于jscompile的调用插件,发现其底层调用的是bin/jsbcc程序来编译js脚本。通过GitHub上的记录可以找到其实现代码,关键在于JS::Compile()函数,它负责生成script对象,并调用JS_EncodeScript()编码生成jsc文件。在编译选项中,设置了不包含源代码的选项,因此生成的jsc文件在反编译时会返回"[no source]"。
尽管如此,通过调用JS_DecodeScript()解码指令与js_Disassemble()进行反汇编,可以实现部分反汇编功能。然而,要实现完整的反编译功能,需要深入理解jsc文件的结构与编码方式。这涉及到高级的逆向工程知识与技术,是未来探讨的方向。
探索之路并未结束,尽管完成了一些初步的反汇编功能,但真正的反编译挑战在于理解和解析机器码到可读的源代码。这需要深入研究JavaScript编译器与解释器的底层实现,以及Cocos2dx在编译过程中对JavaScript代码的特定处理。未来,期待能与更多开发者一起探讨这一高级话题,共同推进游戏安全逆向分析领域的发展。
反汇编和二进制分析工具清单
探索二进制世界的神器清单在这个数字时代,反汇编和二进制分析工具犹如探索代码世界的秘密武器。让我们一起深入了解一系列强大而多样的工具,它们在破解、调试和理解复杂代码中扮演着关键角色。
IDA Pro: 作为重量级选手,IDA Pro以其强大的反汇编能力而闻名,但其价格高昂,适合专业开发者和逆向工程专家。然而,它的精细分析功能使它在高级安全和取证领域无可替代。 轻盈与实惠:Hopper— 这款工具以其简洁的界面和亲民价格,为初学者提供了友好的入门体验,是快速学习二进制分析的理想选择。 免费在线之选:ODA— 作为一款免费的在线工具,ODA为开发者提供了一个方便的平台,无需安装,即可在云端进行实时的二进制分析。 明日之星:Binary Ninja— 虽然非免费,但Binary Ninja凭借其前瞻性和易用性,正在赢得越来越多开发者的心,尤其是对于现代软件的分析。 Relyze— 价格亲民且功能强大的Relyze,为那些寻求性价比之选的用户提供了另一份可能,它的性能和易用性不容小觑。 开源与灵活:Medusa— 作为一款免费开源工具,Medusa以其灵活性和多用途性在逆向工程社区中受到欢迎,是众多开发者和研究者的心头好。 radare— 开源且功能全面的radare,凭借其强大的分析功能和易用的命令行接口,是二进制分析的瑞士军刀。 基础但实用:objdump— 这款免费的线性反汇编工具,虽简单但不可或缺,对于快速查看和理解基本的二进制结构非常有效。 深入调试:GDB、OllyDbg、Windbg— 这些调试器是二进制分析过程中的得力助手,它们提供深入到代码底层的洞察,是软件调试和故障排查的必备工具。 模拟与移植:Bochs— 作为可移植的模拟器,Bochs让我们能够在不同平台上模拟和测试二进制代码的行为,是模拟和分析的重要工具。 反汇编引擎家族:Capstone、distorm3、udis— 这些开源的引擎和库为开发者提供了丰富的反汇编选项,无论是基础操作还是高级分析,都能找到合适的选择。 Python的力量:angr— 作为Python驱动的逆向工程框架,angr提供了一整套API,包括符号执行和高级分析,活跃的社区和开源特性使其在现代安全领域大放异彩。 动态调试的革新:Pin— 这款动态二进制仪器引擎,专为自定义工具开发设计,尤其针对Intel架构,尽管免费,但并非开源。 科研之选:Dyninst— Dyninst是一个动态二进制工具API,侧重于分析和disassembly,它的开源特性使其在学术研究中占据一席之地。 轻量级模拟:Unicorn— 作为Capstone作者的创作,Unicorn提供轻量级的CPU模拟,为基于模拟的分析工具构建者提供了基石。 在《实践中的二进制分析》一书中,作者Dennis Andriesse指出,尽管市面上缺乏全面的指南,但这些工具为从基础到高级分析的旅程提供了丰富的资源。随着技术的不断发展,这些工具将不断进化,推动二进制分析领域的边界不断拓宽。VB Decompiler Pro(VB反编译工具)v.1中文版
VBDecompilerProVB反编译工具是一款针对使用VisualBasic5.0/6.0开发的程序的反编译软件。使用这款免费的VBDecompiler可以被编译成伪代码p-code或nativecode模式。
VB Decompiler Pro(VB反编译工具)是一款针对使用Visual Basic 5.0/6.0开发的程序的反编译软件。使用这款免费的VB Decompiler可以被编译成伪代码p-code或native code模式。
基本简介
VB Decompiler是一款针对使用Visual Basic 5.0/6.0开发的程序的反编译器。此类程序可以被编译成伪代码p-code或native code模式。由于伪代码是由高级指令组成, 因此是很有可能反编译成源代码的(当然, 变量名,函数名等等是无法反编译的). VB Decompiler可以恢复众多伪代码指令,但要反编译成源代码还是有很多工作需要完成, 反编译器将帮助您更轻松的分析程序算法以及部分恢复源代码。
软件特色
如果一个程序被编译成native code, 从机器码恢复源代码是几乎不可能的. 但即便是这种情形下VB Decompiler还是可以帮助你分析程序. VB Decompiler包含了一个强大的支持包含MMX和SSE的Pentium Pro指令集的反编译器. 它还包含一个代码分析器, 用于搜索所有API调用,汇编代码中的字符串引用并将结果修改为相应的注释。
软件亮点
加入一个程序被编译成.net汇编,反编译器将恢复所有的托管代码的数据表和模块,并且使用IL反汇编器反汇编所有的方法,函数以及事件。反编译并不需要.net framework并且支持所有的位Windows操作系统。VB Decompiler也将反编译文件中的所有的图形界面窗体以及控件。出于技术需要,反编译器可能显示所有控件的编译地址。
功能介绍
1.通用脱壳(支持UPX, NSPack以及一些其他常见的可执行文件压缩壳);
2.反编译窗体(frm和frx)以及用户控制(ctl)对象文件;
3.完整的伪代码p-code反编译(解析操作码并转换为标准vb指令,反编译GUID对象);
4.两种伪代码反编译模式(包含堆栈解析或不包含堆栈解析);
5.反汇编native code过程(使用强大的Pentium Pro反汇编器,支持MMX及FPU指令集);
6.反汇编native code过程中的字符串引用以及API调用(使用强大的Pentium Pro反汇编器,支持MMX及FPU指令集);
7.部分反编译native code(使用代码仿真引擎);
8.在反编译的代码中根据语法显示不同的颜色;
9.字符串引用列表以及搜索引擎;
.快速反编译;
.VB5/6程序的混淆工具;
.VB5/6程序的修补工具;
.将反编译的数据保存入单个db文件;
.反编译.Net程序;
.将所有的过程列表保存入MAP文件;
.IDC脚本或是HIEW的Names文件;
更新日志
- 高亮显示“保存”操作符;
- 固定阿拉伯语。感谢lculator zaloom;
- 错误修复:使用语言,选择在安装程序;
- 错误修正:正确处理变量类型有3个数字(例如var_),但内容2个数字(例如var_FC);
- bug修复:反编译msvbvm。dll函数__vbaForEachVar(本机代码);
- bug修复:反编译msvbvmXX。dll函数__vbaNextEachAry, __vbaLsetFixstrFree;
- bug修复:从未知dll (P-Code,本机代码)反编译函数调用;
- bug修复:正确处理fld命令的操作数(本机代码);
- bug修复:通过按“<”和“>”来向前/向后跳转;
3分钟理解反汇编
深入探索程序之旅:3分钟带你领略反汇编的魅力 编程旅程从.c文件到可执行文件,就像一段精心编排的交响乐,依次经过四个关键的乐章:预处理、编译、汇编,最后是链接的调和。这个过程虽然网络上详尽解释无数,但今天我们要聚焦在最后一个乐章——反汇编上,它如同解码器,将神秘的机器码转化为人类可读的指令。 反汇编艺术,就是将那些只有机器才能理解的二进制代码(如)转化为汇编语言,它的存在,就像在迷宫中为迷途的探险者点亮一盏明灯,帮助我们追踪程序的运行轨迹。在Keil工程中,只需在user选项卡上轻轻添加一条指令,就能生成关键的DIS文件,反汇编的探索之旅正式启程。 让我们通过一个实例来感受反汇编的魅力。看韦东山老师的工程中那简洁的代码,它仅通过寄存器操作控制LED的明暗。打开反汇编后的DIS文件,我们可以直观地看到C代码与汇编代码的对应关系。汇编语法虽无需死记硬背,遇到难题时,只需借助强大的搜索引擎,即可迎刃而解。 对比C代码与汇编代码,如delay函数中的指令PUSH{ r0,lr}和POP{ r3,pc},这就像一场小剧场表演。PUSH是将数据压入栈顶,POP则是弹出栈顶数据。一些疑惑可能由此而生:为什么PUSH会将lr的地址给r3,而非pc?实际上,当执行一系列寄存器操作时,它们的存储位置是固定的。在这例中,由于栈的向下增长,r0的值最先出栈到r3,然后lr的值出栈到pc,这样程序就能按照正确的顺序继续执行。 总结来说,反汇编不仅仅是代码的转换,它揭示了程序运行的底层逻辑,帮助我们理解代码如何转化为机器可以执行的指令。通过反汇编,我们可以更深入地洞察程序的灵魂,让编程世界变得不再神秘。现在,你已经掌握了反汇编的精髓,准备好开启你的探索之旅了吗?VB Decompiler Pro(VB反编译工具) V.1中文版
VB Decompiler Pro(VB反编译工具)是一款对于应用Visual Basic 5.0/6.0开发设计的程序的反编译软件。应用这款完全免费的VB Decompiler能够被编译成伪代码p-code或native code方式。
基础介绍
VB Decompiler是一款对于应用Visual Basic 5.0/6.0开发设计的程序的反编译器。该类程序能够被编译成伪代码p-code或native code方式。因为伪代码是由高级命令构成, 因而是很有可能反编译成源码的(自然, 用户标识符,涵数名这些是没法反编译的). VB Decompiler能够修复诸多伪代码命令,但要反编译成源码还是有很多工作中必须进行, 反编译器将协助您更轻轻松松的剖析程序优化算法及其一部分修复源码。
软件特点
假如一个程序被编译成native code, 从序列号修复源码是基本上不太可能的. 但就算是这类情况下VB Decompiler还是能够协助你剖析程序. VB Decompiler包含了一个强劲的适用包括MMX和SSE的Pentium Pro指令系统的反编译器. 它还包括一个编码解析器, 用以检索全部API启用,汇编代码中的字符串数组引入并将结果改动为相对的注解。
软件闪光点
添加一个程序被编译成.net选编,反编译器将修复全部的托管代码的数据分析表和控制模块,而且应用IL反汇编器反编译全部的方式,涵数及其恶性事件。反编译并不一定.net framework而且适用全部的位系统Windows电脑操作系统。VB Decompiler也将反编译文档中的全部的用户界面文本框及其控制。出自于技术性必须,反编译器很有可能显示信息全部控制的编译程序详细地址。
功能介绍
1.通用性蜕壳(适用UPX, NSPack及其一些别的普遍的可执行程序缩小壳);
2.反编译文本框(frm和frx)及其客户操纵(ctl)目标文档;
3.详细的伪代码p-code反编译(分析操作码并变换为规范vb命令,反编译GUID目标);
4.二种伪代码反编译方式(包括局部变量分析或不包含局部变量分析);
5.反编译native code全过程(应用强劲的Pentium Pro反汇编器,适用MMX及FPU指令系统);
6.反编译native code全过程中的字符串数组引入及其API启用(应用强劲的Pentium Pro反汇编器,适用MMX及FPU指令系统);
7.一部分反编译native code(应用编码模拟仿真模块);
8.在反编译的编码中依据英语的语法显示信息不一样的色调;
9.字符串数组引入目录及其百度搜索引擎;
.迅速反编译;
.VB5/6程序的搞混专用工具;
.VB5/6程序的修补工具;
.将反编译的数据信息储存入单独db文件;
.反编译.Net程序;
.将全部的全过程目录储存入MAP文档;
.IDC脚本制作或者HIEW的Names文档;
版本更新
- 高亮显示“储存”操作符;
- 固定不动阿语。谢谢lculator zaloom;
- 不正确修复:应用语言,挑选在安装程序;
- 不正确调整:妥善处理变量类型有3个数据(比如var_),但内容两个数据(比如var_FC);
- bug修复:反编译msvbvm。dll涵数__vbaForEachVar(该设备编码);
- bug修复:反编译msvbvmXX。dll涵数__vbaNextEachAry, __vbaLsetFixstrFree;
- bug修复:从不明dll (P-Code,该设备编码)反编译调用函数;
- bug修复:妥善处理fld指令的操作数(该设备编码);
- bug修复:根据按“lt;”和“gt;”来往前/向后自动跳转;