美文网首页
分享一下某app的反编译破解过程

分享一下某app的反编译破解过程

作者: 被误认为吃货的程序猿 | 来源:发表于2019-03-07 21:43 被阅读0次

https://www.jianshu.com/p/a054652db4e3

先说,出于好玩,破解了某app

主要反编译app,分析出数据加密代码,再拿到底层加密动态库,再绕过底层动态库的签名验证,最终通过自写app调用动态库,并获得加密,解密数据。

1、反编译app:

这一步就不细讲了,太多方法,网上自己搜索……

2、分析代码:

根据抓包获取接口关键词,到反编译源码中查询,并分析代码,

发现关键代码函数:

Java_com_wuba_aes_Exec_init

Java_com_wuba_aes_Exec_decryptPhoneData

这里居然调用了底层动态库:xxx.so 

……我x,还好有大招

3、动态库破解:

来来来,采用大招了,哈哈:下载ida,反编译xxx.so

找到这两个函数的汇编代码,并双击定位,按下F5反汇编,能大概看到一些源码

然后分析加密过程,查找加密秘钥,可能学术不精,无法找到,不能找到加密的具体东西

……我xxx,还好有大招

4、尝试动态库xxx.so调用:

尝试自己建一个Android工程,调用xxx.so动态库,发现调用成功,但是解密数据不对……是不是有验证??

5、动态库验证破解:

分析发现解密函数中,的确是有一些验证的,如:

if ( isOurApk == 1 )

{

……

}

这时候我们就要跳过这个这个判断,把1改为0可好,哈哈,这样跳过这些验证,这样我们自己建立的工程就可以来调用这些接口了。

6、修改.so文件:

a.在ida中左侧双击这个函数,定位到ida-view a 的汇编视图(F5可以看到源码),然后在汇编视图定位中的汇编代码中,发现有一个cmp指令,其实就是这个if条件,然后记下地址

b.然后在ida的hex-view(二进制视图)中找到这个地址(在 汇编视图 中,鼠标定位到cmp这一行,然后选择hex-view,可以看到鼠标刚好定位到这行代码的地址,反正就是想办法找到这行代码的地址),然后发现这样的二进制: 01 28,然后鼠标右键,修改01为00,然后鼠标右键保存

c.然后再在ida的汇编视图中,定位这个函数,再按F5,看看源码,以及生效的效果。直到改对为止。

d.在ida中这样的修改,是不会真正修改到动态库的,需要用notepad中的hex-editor插件(或者其他工具,如ue)打开这个.so文件,并找到这个地址 修改,然后保存,这样就生效了

7、最后再用自己的工程,则可以调用该动态库,并直接调用里面的函数了。

后面有机会,再完善该文章,或者上传代码!

相关文章

网友评论

      本文标题:分享一下某app的反编译破解过程

      本文链接:https://www.haomeiwen.com/subject/nlukpftx.html