gjden 发表于 2016-6-22 14:57

GDA2.4更新(支持OAT,增加类,方法,域等名称修改,添加注释,分析结果保存等)

本帖最后由 wnagzihxain 于 2016-6-22 15:09 编辑

GDA简介:
分析工具:GDA最新版本:2.4
运行环境:win7,xp,win8
功能简介:
   1.独立于java和android sdk,无需安装java和android sdk即可使用。
   2.可以解析加过壳的Dex,并且可以有效绕过各种字节码陷阱、类型混淆以及anti-disassembling和anti-decompiling技术。
   3.完全使用c++编写,快速解析dex、apk和OAT,odex转dex,OAT转DEX。
   4.直接修改DEX文件的smali指令,无需反编译。
   5.可修改DEX文件中的字符串(支持中文)
   6.改进优化的xml解析器(可解析加壳处理过xml),支持过滤显示功能
   7.快速dump设备内存,另外提供有内存模块过滤功能。
   8.针对字符串、方法、类、域等关键信息提供了强大的搜索、交叉引用。
   9.提供了基于包过滤的引用字符串查看
   10.还算友好的smali阅读界面,支持反编译伪代码(F5),伪代码(字符串、方法)交叉引用(X),支持可疑行为扫描,支持系统API查看等等。
   11. ……更强大的功能等待你去发现。

断断续的做了一些纠错,优化和功能补充,把GDA2.4发布出来。

2.4版本主要更新功能如下:
   1.添加了伪代码上的类名,方法名,域名的修改。
   2.添加了行注释功能,你可以在伪代码上做注释。
   3.设计了GDA文件格式,用于保存分析结果数据(包含修改的类,方法,域,注释等等),类似于IDA idb文件,下次分析时可以直接打开分析文件,无需源文件存在。
   4.添加了伪代码缩进效果。
   5.添加了OAT解析和以及从OAT提取所有Dex文件的功能,默认只打开第一个DEX进行分析。

此次做了如下更新:

1.问题纠正

   1).修复了优化选项选中出现另行打开文件失效的bug。
   2).修复反编译java伪代码部分特殊字节码识别出错的问题,解决了某些混淆了无效代码的方法解析崩溃问题。
   3).采用多线程实现解析,结果和渲染的分离,解决了解析超大方法时出现的卡死问题。
2.功能添加
   1).添加了伪代码上的类名,方法名,域名的修改。
   下图是在方法伪代码上修改方法名称的例子

http://bbs.pediy.com/attachment.php?attachmentid=105386&thumb=1&d=1465474837

   修改后:

http://bbs.pediy.com/attachment.php?attachmentid=105387&thumb=1&d=1465474837

   下图是在类伪代码上修改方法,类名,和域名的例子

http://bbs.pediy.com/attachment.php?attachmentid=105388&thumb=1&d=1465474837

   修改后的方法同样会实时更新到树形结构上:
http://bbs.pediy.com/attachment.php?attachmentid=105389&thumb=1&d=1465474837

   2).添加了行注释功能,你可以在伪代码上做注释,注释功能快捷键(C/c)。点击需要注释的行,按下C即可添加注释。
http://bbs.pediy.com/attachment.php?attachmentid=105390&thumb=1&d=1465474837

   3).设计了GDA文件格式,用于保存分析的中间结果数据(包含修改的类,方法,域,注释等等),类似于IDA idb文件,下次分析时可以直接打开分析文件,无需源文件存在。通过菜单file->SAVE MODIFIED可以保存分析结果,如果有未保存的修改,会弹框提示保存。

http://bbs.pediy.com/attachment.php?attachmentid=105391&thumb=1&d=1465474837
   打开后:

http://bbs.pediy.com/attachment.php?attachmentid=105392&thumb=1&d=1465474920
http://bbs.pediy.com/attachment.php?attachmentid=105393&thumb=1&d=1465474920

   4).添加了伪代码缩进效果。

http://bbs.pediy.com/attachment.php?attachmentid=105394&thumb=1&d=1465474920

   5).添加了OAT解析和以及从OAT提取所有Dex文件的功能。当打开OAT文件是,会直接在OAT当前目录下的OAT文件名相同的文件夹下抽取所有dex文件。默认只打开第一个DEX进行分析。你也可以直接使用工具菜单中OAT2DEX来对OAT进行直接转换。
http://bbs.pediy.com/attachment.php?attachmentid=105395&thumb=1&d=1465474920



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2.0以前版本更新说明

GDA分析工具简单使用说明分析工具:GDA
编写环境:vc6,MFC
最新版本:2.0
运行环境:win7,xp,win8
工具特色:
独立于java和android sdk,无需安装java和android sdk即可使用,完全使用c++编写,快速解析dex或apk,odex转dex,直接指令修改,字符串编辑,修正后的xml解析器(可解析加壳处理过xml),快速dump设备内存,交叉引用(字符串,方法,类和域),快速字符串搜索,还算友好的smali阅读界面,支持反编译伪代码,伪代码交叉引用,支持可疑行为扫描,支持系统API查看等等。
意见反馈:请加qq群37432877,敬请指教。

版本更新:2.0 主要增强了反编译效果,在伪代码上添加了双击查看,交叉引用和字符串编辑等功能,此外专门为病毒分析师添加了API查看功能和可以行为扫描功能,下一个版本计划添加类,方法等名称修改功能,增强的脱壳功能,提供分析结果数据库文件功能。

http://bbs.pediy.com/attachment.php?attachmentid=103325&thumb=1&d=1456389946

1.纠正了F5反编译出现的错误,优化了反编译效果,添加了this指针的识别,对代码进行了着色,效果图如下。

http://bbs.pediy.com/attachment.php?attachmentid=103324&thumb=1&d=1456389946

2.增强了伪代码功能,支持有调试符号和无调试符号的显示,给伪代码添加了双击操作和交叉引用操作,将光标放在函数调用处,双击可进入函数,X可进行交叉引用;将光标放在字符串中,X可执行字符串交叉引用,右键可以编辑字符串。

http://bbs.pediy.com/attachment.php?attachmentid=103329&thumb=1&d=1456390587

3.添加import,简化了函数调用中所夹带的包名称。
4.添加可以查看APK所使用的API功能,并且可以根据包名进行过滤。
5.专门为病毒分析师定制的可疑行为扫描功能,采用了api行为链的方式进行恶意行为扫描,可以扫描文件释放、删除和遍历,短信发送,短信窃取,通讯录窃取,电话监听,加密算法,数据库操作,手机号码窃取,邮箱登录,http网络操作等行为识别,并且显示行为操作函数,双击可进入产生行为所在代码。

http://bbs.pediy.com/attachment.php?attachmentid=103327&thumb=1&d=1456389946



版本更新:1.60 好久没更新了,这一次添加了F5功能,仿照IDA的F5功能,可以对针对方法函数将字节码直接反编译为伪java代码的功能,反编译器有很多地方还有待改进,还望各位多指正。
1.修复win8,win10下不能运行的问题。
2.修正了字符串显示,转换了回车换行符
3.添加了APP应用有效字符串显示功能(排除了包,类,方法,域等字符串的干扰)
4.添加了所有字符串显示功能(显示所有字符串,包含DEX文件中的所有)
5.添加了当前访问函数的调用者查询(通过交叉引用来实现X)
6.添加左边树形控件右键菜单功能,实现根据包或者子包中所有类所使用的字符串和方法,方便选择自己感兴趣的包进行分析。
7.针对方法添加了F5功能,实现了直接将字节码转换为伪java代码,按一次F5显示java伪代码,再按一次F5显示smali。
8.修复长时间运行,有时会出现崩溃的问题(感谢天天向上提供dump文件)



更新版本:1.50。目前较忙,很多人建议加入反编译功能,其实已经在做针对于方法的实时反编译成JAVA的功能,反编译功能直接从字节码转换为JAVA,速度会非常快。决定在下一个版本进行大的更新。1.50版本只做了几个小功能添加已及几处bug修复。

1.添加字符串编辑功能,支持中文修改;
http://bbs.pediy.com/attachment.php?attachmentid=100281&thumb=1&d=1443419526
http://bbs.pediy.com/attachment.php?attachmentid=100284&thumb=1&d=1443420787
http://bbs.pediy.com/attachment.php?attachmentid=100280&thumb=1&d=1443419526
支持中文修改
http://bbs.pediy.com/attachment.php?attachmentid=100282&thumb=1&d=1443419526
2.添加十六进制显示功能。
http://bbs.pediy.com/attachment.php?attachmentid=100278&thumb=1&d=1443419526
3.重写了搜索窗口,提供了更为方便的分类搜索
http://bbs.pediy.com/attachment.php?attachmentid=100279&thumb=1&d=1443419526
4.修正了搜索窗口多次搜索累积显示的bug。


更新版本:1.41,感谢热心的朋友们给了测试,发现了不少bug,做了修正,功能上做了微调http://bbs.pediy.com/images/smilies/124.gif。
1.修正点击类时出现的类方法解析崩溃问题
2.修正了壳加载时存在的不兼容性问题。
3.添加了文件拖拽功能。
4.修正了连续打开同一个文件产生崩溃的问题。
5.修复了dump进行脱壳中,部分系统中的路径处理问题
6.修复了进程内存模块中,不能完全显示dex模块和odex模块的问题
7.添加了内存dump的过滤功能,目前支持dex,odex,so,jar,apk等内存模块的过滤
8.修复了一些伪方法,加密方法解析错误崩溃问题


一、简介:
GDA(GJoy Dex Aanalyzer),写这个工具主要是为了便于自己分析,有的功能还比较鸡肋,只在xp和win7上测试过,自己的主要需求是:方便脱壳和破解,不想在电脑和各虚拟机里都安装java才能用,不想每次分析个功能还需要反编译,希望可以直接修改dex的指令,能够直接连接android设备,dump自己想要的内存模块等等。另外,在做分析过程中很多做了处理或者加了壳的apk往往等了很久结果却冒出来一个反编译失败,这种情况常常遇到,于是决定了利用空闲时间写了这么个小工具,但是目前只能反汇编smali,对于反编译java这个也试着在写,反编译java代码写得很累,可以参考的资料很少,还不知道啥时候能完成,只能尽力而为了。

工具没有什么技术含量,很多代码都参考于互联网,欢迎拍砖,大量的时间都花在了解决一下界面显示问题,结构设计问题和调试排错上,确实很累人。GDA工具的反汇编引擎使用的是开源的dexdump,按照自己的需要做了修改和加强,并修复了一些bug。

如果只使用这个工具静态分析病毒或者研究壳的话,需要一定的smali汇编阅读能力,废话不多说,以下简单介绍使用方法,文档写得有些草率,有些小的功能和逻辑还没来得及介绍,还望谅解。

二、使用说明
界面布局和简单功能介绍:
http://bbs.pediy.com/attachment.php?attachmentid=99887&thumb=1&d=1441526822

工具实现了如下功能:
1. APK/DEX/ODEX文件解析,二进制xml解析(能够正确解析加固版的xml二进制文件)。
2. ODEX文件中提取DEX文件
3. 直接对DEX的指令进行编辑修改(方便破解,不用反编译),单指令反汇编,smali操作码编译成字节码(后续有时间支持整条smali编译)
4. 对方法,类,字符串等进行快速搜索
5. 支持方法,类,字符串等的交叉引用
6. 方法访问回滚,方法跳转。
7. 简单的命令支持
8. 连接android设备,对指定进程的内存进行dump。
9. 十六进制显示非方法区域。
10. 命令行shell。
其他主要窗口简介:
类基本信息显示
http://bbs.pediy.com/attachment.php?attachmentid=99876&thumb=1&d=1441526598


所有字符串
http://bbs.pediy.com/attachment.php?attachmentid=99882&thumb=1&d=1441526649

Xml显示窗口
http://bbs.pediy.com/attachment.php?attachmentid=99883&thumb=1&d=1441526649

内存dump窗口
http://bbs.pediy.com/attachment.php?attachmentid=99879&thumb=1&d=1441526598
http://bbs.pediy.com/attachment.php?attachmentid=99878&thumb=1&d=1441526598

CMD命令窗口
http://bbs.pediy.com/attachment.php?attachmentid=99877&thumb=1&d=1441526598

搜索窗口,双击结果行,可直接进入结果所在的方法
http://bbs.pediy.com/attachment.php?attachmentid=99881&thumb=1&d=1441526598

其他的自己去发觉吧。
三、快捷键
ctr+c       拷贝数据
ctr+f       查找当前窗口的字符串
m/M      光标置于指令行时编辑指令
g/G      跳转到指定偏移地址
s/S      从全局搜索字符串或者选中的字符串
x/X      交叉引用(支持字符串,类,方法,域的交叉引用)
d/D      dump当前访问的二进制数据
<-/backspace/esc   回到上一次访问方法
->      下一个访问过的方法
UP         把焦点放在左边树形控件上,按下up键可以访问基于内存的上一个方法
Down       把焦点放在左边树形控件上,访问基于内存的下一个方法
Enter      对所有编辑框的输入修改生效

四、破解与脱壳的简单使用步骤:

破解步骤:
    1.打开dex,可选中optload进行自动定位到入口activity,只有AndroidManifest.xml中描述的package与dex中的package相同才能凑效(如果选中后打开dex文件,只解析com包的类,解析完成后如果classes.dex目录下存在AndroidManifest.xml,会自动解析此文件,并且定位到其中指定的第一个执行的activity.如果打开之后点击,则会直接定位到主activity)

    2.s查找字符串,找到关键点,
    3.m修改跳转指令
      光标移动要修改的指令处M,显示如下:
http://bbs.pediy.com/attachment.php?attachmentid=99884&thumb=1&d=1441526649
      1)向偏移框中填入偏移地址可用反汇编地址处的指令,修改后enter
      2)指令框中可用直接修改指令,修改后enter
      3)smali框可修改操作码,如if-ltz改为if-nez,修改后enter
    4.open->save modify保存修改,如果打开的是apk,选save dex as
    5.dex拖入apk压缩包中,签名即可。

脱壳与分析步骤:
    这部分功能还比较弱,需要root才能dump,以后会引入注入模块来实现更强的功能。
    1.打开dump窗口(点击按钮dump,或者菜单tools->open device)
    2.等待窗口链接设备,直到显示出所有进程,有时候有点慢。
    3.双击所选进程行,或者右键打开进程,等待显示所有进程模块
    4.单击要dump的模块,或者选中多行右键菜单dump即可dump出此模块,dump的文件存放在{GDA当前目录}/dum/{进程名}/{模块名}
    5.打开dump出的odex或者dex,如果是odex可以在菜单open->save as dex将odex转化为dex.
    6.如果需要修复dex,那只能靠自己了。
    7.打开dex并分析。

Hmily 发表于 2016-6-28 18:27

感谢@gjden 来吾爱分享好工具,加亮置顶论坛推荐一下!


我把工具上传爱盘方便下载,如果以后有更新可以通知我更新:

http://down.52pojie.cn/Tools/Android_Tools/GDA2.4.rar

xkz959 发表于 2016-6-22 15:16

好像很厉害的样子 支持一下

rain66715 发表于 2016-6-22 16:43

感谢分享。三个链接。

tail88 发表于 2016-6-22 20:48

怎么样,好用不?感谢分享。

梨花开 发表于 2016-6-22 21:49

谢谢,感谢分享

周二两 发表于 2016-6-22 21:58

谢谢分享!换个网盘地址如何?

gjden 发表于 2016-6-28 10:17

初来乍到,请问,如何修改已经发出的帖子??

雁字回时月man楼 发表于 2016-6-28 21:19

厉害厉害,膜拜

mycc 发表于 2016-6-28 22:16

不错,收一份备用。。。。。牛
页: [1] 2 3 4 5
查看完整版本: GDA2.4更新(支持OAT,增加类,方法,域等名称修改,添加注释,分析结果保存等)