吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10821|回复: 84
上一主题 下一主题

[Android 原创] 360脱壳-native函数还原笔记-2017-06-25

  [复制链接]
跳转到指定楼层
楼主
发表于 2017-6-25 12:25 | 只看该作者 回帖奖励 |倒序浏览
本帖最后由 欧阳锋锋 于 2017-6-25 12:37 编辑

      接触andorid逆向脱壳一段时间了,刚刚感觉开始入门,最开始时的过反调试,花费了大量的时间,但时间长了,汇编指令慢慢熟悉,学会了一些调
试技巧,反调试方法知道了,就那么些反调试的方法,过反调就比较顺利了,所以刚开始学逆向的同学,应该也会比较头疼的,记录下我的逆向学习之
旅,增强下记忆,记录分享也是自我提升的过程吧。轻松过掉反调试后,就能有更多的时间去研究壳本身流程和加解密操作。先前的dex加壳,不管是
内存加载(内存dump),还是类抽取(dexHunter),从内存中dump出来后,还是比较容易重打包运行的,自从出现能解释执行smali指令的壳出现后
,小伙伴都能把dex dump出来可是onCreate函数是native的,无法还原指令,dex的关键代码可以分析了,但是无法进行重打包运行,这tn就蛋疼了,
没有卵用,这些天也是一有空就看,还有点成果,手里的两个apk,只是把启动相关Activity 的onCreate进行了还原,apk能运行起来,记录分享下我
的思路。


其实也没思路了,就是跟踪汇编,看汇编指令,函数比较复杂,而且加了混淆,刚开始头都大了。


      1.apk 过反调试,360的反调试方法还是那么些,没有更新,可以看我前一篇文章。

      2.找到正确的地方下断点,因为dump出dex的onCreate函数是native的,所以肯定是需要注册的,在so中找到给其赋值RegisterNative函数,相应的参
数就是对应的jni函数,IDA动态调试起来,下断点,迷糊的小伙伴可以翻看我前一篇文章,最后有介绍。


      3.跟踪jni函数,关键在sub_A990函数,而且函数挺长的,需要点耐心阅读

         


      4.根据方法的索引获取方法的结构体,大致结构体如下:

            Struct NativeMethod{
                  int classIdx;
                  int dexMethodIdx;
                  int dexCodeOff;
                  int** pDexAddr;
           }*pNativeMethod;

         


      5.根据结构体获取方法的相关信息

         


      6.根据方法的shorty,构建参数

        


      7.解析指令

        


      8.解密指令,获取opCode

        


      9.根据opcode进行相应的case处理,比如说一条invoke指令,就会通过,FindClass,GetMethod,CallXXXMethodA方法进行翻译  
         

      10.大体的流程就是这样的,每个case的流程,就不写了,因为没看,不会,只是看了用到的部分,以下是某个apk 简单onCreate的还原

      


二、总结

       360的opcode对应表不是固定的,分析了两个apk,表的对应关系是不一样的,应该是在加固过程中,动态生成的,指令加密方式也是

不一样的,尽管只是简单的异或,所以就没办法进行批处理了,只能手动分析,分析出这个apk对应的opcode表,再进行批处理操作了,反

正脱壳是越来越麻烦了,需要耐心去分析,分析用到的apk就不往论坛传了,放出去不太好,有需要的可以私我。



免费评分

参与人数 30吾爱币 +28 热心值 +26 收起 理由
快乐交友 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
zy1234 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
IamY + 1 我很赞同!
sunine_zi + 1 + 1 谢谢@Thanks!
s97712 + 1 我很赞同!
非法字符 + 1 我很赞同!
温华 + 1 + 1 热心回复!
2864095098 + 1 热心回复!
沙漠一滩水 + 1 + 1 谢谢@Thanks!
zhuzaiting + 1 + 1 谢谢@Thanks!
zhengsidie + 1 + 1 很不错
车大炮 + 1 + 1 谢谢@Thanks!
alin168 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
paomian + 1 + 1 我很赞同!
cqr2287 + 1 膜拜
海底总动员 + 1 热心回复!
adq_cq + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
qaz003 + 2 + 1 用心讨论,共获提升!
a5606495 + 1 + 1 热心回复!
Intro + 1 我很赞同!
sumith + 1 + 1 鼓励转贴优秀软件安全工具和文档!
panwanpeng + 1 + 1 懂汇编就是好
soyiC + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
MagicnoBob + 1 + 1 谢谢@Thanks!
wq0351 + 1 + 1 来支持下,呵呵,虽然不懂~~~
雫Hao洋洋 + 1 + 1 热心回复!
都同学 + 1 + 1 用心讨论,共获提升!
独行风云 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
20011004 + 1 我很赞同!
wmsuper + 2 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

推荐
发表于 2017-6-26 11:44 | 只看该作者
您好,请问是否有解开libjiagu.so? 虽然是别的方法破解了360,但想学习了是怎么做的,问题如下:
1.;壳工程的attachBaseContext方法中,调用了libjiagu.so中的interface5(runApp)方法,但是通过IDA打开时,并未找到interface5(runApp)方法。
2.通过classLoader加载了“com.qihoo360.crypt.entryRunApplication”,但是com.qihoo360.crypt.entryRunApplication类在哪里呢?我怎么在libjiagu.so中找到?
盼您回复。谢谢

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

推荐
发表于 2017-7-3 10:06 | 只看该作者
欧阳锋锋 发表于 2017-6-26 19:40
1.这是动态注册的函数,需要找到注册的地方,才到找到对应的函数地址
2.如果这个类不在代{过}{滤}理壳里 ...

1.知道了动态注册的方法了。看了例了,也实现动态注册。
2。在解开的dex文件与源的dex文件都找了,都没有找到文件。
3。libjiagu.so里面,为什么JNI_ONLoad不是函数,而是在exports里面呢?

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

板凳
发表于 2017-6-25 12:29 | 只看该作者

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

报纸
发表于 2017-6-25 12:39 | 只看该作者
谢谢楼主

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

地板
发表于 2017-6-25 14:07 | 只看该作者
需要什么版本的IDA分析啊

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

7#
发表于 2017-6-25 14:56 | 只看该作者
xuexi学习

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

8#
发表于 2017-6-25 19:58 | 只看该作者
有兴趣的话可以研究研究百度加固

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

9#
发表于 2017-6-25 22:37 | 只看该作者
隔行如隔山,Android的指令跟x86 差很远哦……

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

10#
发表于 2017-6-26 01:14 | 只看该作者
学习学习,感谢楼主

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

11#
发表于 2017-6-26 09:52 | 只看该作者

感谢分享,学习下!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

12#
发表于 2017-6-26 10:08 | 只看该作者
不错好好

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则


免责声明:
吾爱破解所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

Mail To:Service@52PoJie.Cn

快速回复 收藏帖子 返回列表 搜索

RSS订阅|手机版|小黑屋|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2017-9-20 09:53

Powered by Discuz!

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表