首页
社区
课程
招聘
[原创]小记初次crack(利用IDA)
发表于: 2015-3-27 23:34 10081

[原创]小记初次crack(利用IDA)

2015-3-27 23:34
10081

近来看了非虫大大的Android软件安全与逆向分析,这段时间又在做安卓开发,对安卓逆向产生了浓厚的兴趣,随尝试对一个简单小程序进行crack,虽然很简单,但是我这个菜鸟还是遇到了一些困难,好在是解决啦。分享一下我的crack和心得:
    程序是来自《第一行Android代码》的一个例子,简单说就是验证用户登录的功能,源代码中的验证逻辑是这样的:
  
     之前对smila文件进行破解已经成功,但是一时心血来潮想要试试用IDA进行反汇编破解,于是取出dex文件,丢到IDA中,

     接下来用apktools对apk反编译,拿到public.xml文件,查看里面的信息,突然想起这个程序的提示信息没有写在string.xml里保存,那该怎么找破解点呢,首先想到的是登陆的按钮,找到public.xml中的登陆按钮所给的id
    拿着0x7f080006去IDA里找,找到之后发现一个问题,这里的验证时写在按钮监听器事件里的,而此时IDA的定位却在OnCreate的主调函数下,里面的if-epz是用来验证是否记住密码的,上下翻了翻没有找到连续判定的两个if条件,于是想着换一换其他资源的id,比如输入框之类的,同样没有进展。
    感觉首次尝试就受到了阻碍,于是开始换个角度思考,既然找不到(IDA解析出的结果行数很多)If的破解点,就从类名下手,查看之前解出的smail文件,发现破解点所在的类名为LoginAvtivity,把这个字串丢到IDA下搜索,果不其然找到了破解点的位置:

    下面的事情就很简单了,查看HEX编码的位置,然后去c32asm下定位修改,把两个OP_IF-EQZ操作码38改成39,也就是改成if-nez:

然后重签名打包回去进行验证,可以看到破解成功的效果。
    心得:这是我第一次自己分析进行的crack尝试,在过程中遇到了一些小困难,但是我觉得在以后 的破解过程遇到困难的时候,一定要多尝试多变通,看看有没有其他的方式方法来找到破解点,也希望自己这个小菜鸟能在看雪论坛中努力成长,大家共勉!


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 3
支持
分享
最新回复 (7)
雪    币: 31
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
看来IDA工具是个必需!!!!!
2015-3-30 01:25
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
用IDA工具很实在
2015-3-30 18:48
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我也买来非虫那本书,苦于没有安卓基础,现在补安卓基础去
2015-3-30 20:04
0
雪    币: 267
活跃值: (318)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我觉得那本书还是需要一定安卓基础的,我现在就是一边学习安卓,一边看非虫的那本书,感觉兴致满满,加油~
2015-3-31 00:02
0
雪    币: 267
活跃值: (318)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
是的,工具很强大
2015-3-31 00:03
0
雪    币: 308
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
好强大的工具,先要学习了。
2015-3-31 03:43
0
雪    币: 43
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
恭喜楼主!我也在搞Android的安全测试,觉得这方面真的挺有意思的~
2015-3-31 11:48
0
游客
登录 | 注册 方可回帖
返回
//