qtfreet00 发表于 2015-9-21 10:40

吾爱破解安卓逆向入门教程(七)--- 了解JEB和IDA使用

本帖最后由 世事繁华皆成空 于 2015-9-21 10:46 编辑

距离上次的教程帖已经过去很久了,一直没心思码帖子,关键也不知道该写什么,{:1_908:}这次给大家普及下jeb和ida的初步使用教程,具体深入的还是得靠大家自己,所谓师傅领进门,修行靠自身,在下给各位师傅请安了。
本次课程样本:http://www.52pojie.cn/thread-313869-1-2.html


0x0 jeb是什么
JEB是Android应用静态分析的de facto standard,除去准确的反编译结果、高容错性之外,JEB提供的API也方便了我们编写插件对源文件进行处理,实施反混淆甚至一些更高级的应用分析来方便后续的人工分析.(摘自乌云)
jeb凭借其牛X的保护措施和高昂的售价,使得诸多普通逆向爱好者望而却步,当然ida也是,目前网络上仅流传着jeb 1.5和ida 6.6的破解版,虽是旧版,面对很多情况依然是绰绰有余


0x1 使用jeb
第一次使用jeb一般是需要配置一下java环境的

如上图配置,JAVA_HOME根据自己的jre环境设定,之后就可以运行jeb_wincon.bat了,打开jeb后,将apk或者dex文件拖入到jeb窗体中,经过耐心的等待后,就可以看到jeb已经反编译完成了,针对一些加密的apk,apktool反编译不了的,往往jeb能够成功,但不代表所有都能成功,这也是jeb的牛逼之处,安卓加密商针对的更多的是apktool自身的漏洞,反编译完成后,我们就看到程序的smali代码了,


可以点击string查看dex中的字符串,ctrl+f就可以进行搜索了

搜索到需要的字符串后双击就可以来到smali代码处,如果看不懂smali,按下tab就可以看到java代码了,是不是很神奇?

当我们来到一个java文件后,想快速定位到一个命令调用的方法时,可以直接在这条命令上双击即可

还是很方便的吧,点击上方的后退按钮可以快速回到上一级,即返回这条命令的地方


那jeb的使用呢,差不多就这些,其它的自己琢磨吧,切记jeb是无法修改代码的哦(小提示,在代码中右键点击comment可以快速添加备注,点击rename item可以修改函数名哦,在代码被混淆时,这个非常有用)


0x2 ida是什么
交互式反汇编器专业版(Interactive Disassembler Professional),人们常称其为IDA Pro,或简称为IDA,是总部位于比利时列日市(Liège)的Hex-Rayd公司的一款产品。开发IDA的是一位编程天才,名叫Ilfak Guilfanov。
ida的强势之处在于其强大的静态分析能力,不管什么格式的文件,不管此文件是否能够正常打开,都不会影响它的静态分析,配合更加牛逼的f5插件(目前只有ida 6.5版本的插件),可以轻松的看到c的伪代码,对于看不懂汇编的人,这无疑很大程度上帮助他理解代码
PS:当然我们都是盗版用户拉,目前正版版本6.8
在安卓上面,我们使用ida主要是分析so,lua,dll此类文件,dex什么的交给android killer这类软件即可,本次主要讲了解静态分析,不涉及动态
样本依然是鬼哥的apk文件,我们提取出其中的so文件,用ida打开,默认选项ok等待其分析完成即可

在exports选项卡中可以看到所有调用的函数,我们定位到需要分析的方法,首先我们需要知道怎么知道方法名,在编写jni的时候,每调用一个nativie方法,都会使用这类语句进行调用

public static native 类型 方法名(参数类型)
样本中如下图


那我们可以在ida中快速搜索ggPrintHello即可,回到ida,alt+t可以进行搜索方法名(如果需要搜索字符串,只需要先shift+f12切换到string选项卡,再次alt+t即可),输入后回车就可以定位到该方法,双击进入后

映入我们眼帘的肯定就是汇编代码了

那看不懂怎么办,只需要f5一下即可


是不是相当于汇编来说直观多了,当然ida也支持重命名方法名和参数类型等等

不过ida对中文的支持很不好,除了添加备注外,其余情况下基本不能添加或者修改为中文,那ida分析so的时候也是只能看不能改,怎么才能改呢,这就要借助到16进制编辑器了,定位到我们需要修改的代码

然后切换到HEX VIEW-A就可以看到16进制了,记下当前的地址,

使用如010Eiditor此类软件打开,ctrl+G来到00000BBA地址,修改16进制后保存即可,具体的进制转换自己查资料吧


zzage 发表于 2015-9-21 18:02

最后那个修改16进制的步骤,IDA6.6本身就支持直接修改,点击你要修改那一行asm代码,然后菜单Edit->Patch program->Change bytes就可以修改,修改完Edit->Patch program->Apply patches to input file就可以保存了。{:1_903:},而且可以更方便的是,可以在IDA里面修改16进制,修改完可以直接F5,看修改后的代码逻辑。

暮清 发表于 2016-9-26 18:08

mmzxc120 发表于 2015-9-23 12:25
为什么我打开JEB 是这样的,,,然后打开jeb_wincon.bat。也是出现cmd命令框, 一闪就没有了,打不开,

我看完去测试也是遇到你这样的问题。但我慢慢调试发现了问题,并解决了。我的问题是在使用的电脑是32位4G内存的电脑,bat文件中的%JAVA% -Xmx4096m -XX:-UseParallelGC -XX:MinHeapFreeRatio=15 -jar %DECOMPILER% %*,4096太大了。需要修改为1024m,另外如果是32位的还需要下载swt-win32-4.4.jar放在bin目录下。你可以jeb_wincon.bat文件中不同地方增加dos"等待输入的指令",这样就能在窗口关闭前停下来,然后你再看报的什么错。有需要帮助可以找我。

UUY 发表于 2015-9-21 10:43

本帖最后由 UUY 于 2015-9-21 19:15 编辑

支持大牛{:301_1003:}精品中的精品啊...

wakichie 发表于 2015-9-21 10:48

MT也不错啊

syrmb 发表于 2015-9-21 11:04

谢谢版主大神

就爱玩玩 发表于 2015-9-21 11:46

多谢楼主分享

Da丨梦 发表于 2015-9-21 11:51

KGforyou 发表于 2015-9-21 12:00

谢谢大神

2314902431 发表于 2015-9-21 12:10

ida都是大神用的东东,我一直没用过

嘉文 发表于 2015-9-21 12:28

阿di达思 发表于 2015-9-21 12:33


前排膜拜牛大
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 吾爱破解安卓逆向入门教程(七)--- 了解JEB和IDA使用