用IDA分析so

39 篇文章 0 订阅
8 篇文章 0 订阅
距离上次的教程帖已经过去很久了,一直没心思码帖子,关键也不知道该写什么, 这次给大家普及下 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环境的
QQ截图20150921095651.png 
如上图配置,JAVA_HOME根据自己的jre环境设定,之后就可以运行jeb_wincon.bat了,打开jeb后,将apk或者dex文件拖入到jeb窗体中,经过耐心的等待后,就可以看到jeb已经反编译完成了,针对一些加密的apk,apktool反编译不了的,往往jeb能够成功,但不代表所有都能成功,这也是jeb的牛逼之处,安卓加密商针对的更多的是apktool自身的漏洞,反编译完成后,我们就看到程序的smali代码了,

QQ截图20150921100125.png 
可以点击string查看dex中的字符串,ctrl+f就可以进行搜索了
QQ截图20150921100301.png  QQ截图20150921100417.png 
搜索到需要的字符串后双击就可以来到smali代码处,如果看不懂smali,按下tab就可以看到java代码了,是不是很神奇?
QQ截图20150921100532.png 
当我们来到一个java文件后,想快速定位到一个命令调用的方法时,可以直接在这条命令上双击即可
QQ截图20150921100815.png  QQ截图20150921100821.png 
还是很方便的吧,点击上方的后退按钮可以快速回到上一级,即返回这条命令的地方
QQ截图20150921100947.png 

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

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等待其分析完成即可
QQ截图20150921102208.png 
在exports选项卡中可以看到所有调用的函数,我们定位到需要分析的方法,首先我们需要知道怎么知道方法名,在编写jni的时候,每调用一个nativie方法,都会使用这类语句进行调用

public static native 类型 方法名(参数类型)

样本中如下图
QQ截图20150921102448.png 

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

映入我们眼帘的肯定就是汇编代码了
QQ截图20150921102808.png 
那看不懂怎么办,只需要f5一下即可
QQ截图20150921104331.png 

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

不过ida对中文的支持很不好,除了添加备注外,其余情况下基本不能添加或者修改为中文,那ida分析so的时候也是只能看不能改,怎么才能改呢,这就要借助到16进制编辑器了,定位到我们需要修改的代码
QQ截图20150921103431.png 
然后切换到HEX VIEW-A就可以看到16进制了,记下当前的地址,
QQ截图20150921103538.png 
使用如010Eiditor此类软件打开,ctrl+G来到00000BBA地址,修改16进制后保存即可,具体的进制转换自己查资料吧
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值