• 新时代幸福美丽新边疆 2019-09-15
  • 华强方特从“熊出没”走向内容产业化 2019-09-12
  • 暴瘦50斤,70岁的她爱穿比基尼,活得比少女还滋润! 2019-09-12
  • 科大讯飞拟募资金约36亿 加码人工智能 2019-09-05
  • 【人民映像】霍庆有:匠心神韵 杨柳青青 2019-09-05
  • 用责任制拧紧安全阀(快评) 2019-08-30
  • 和亲戚一起学习传统文化 2019-08-25
  • 美国对华加征关税相关新闻 2019-08-16
  • 乌苏市:“扶贫鸡”助力精准脱贫 2019-08-14
  • 一二线城市土地出让冰火两重天 2019-08-14
  • 西安高科工程技术学校——陕西省政府直属中等职业院校西安高科工程技术学校2018招生简章-陕西教育新闻 2019-08-07
  • Angelababy高扎马尾坐雪地大笑显俏皮 双手浸冰水被邓超赞“猛女” 2019-08-06
  • 游戏主播GodV韦神即兴演唱 这一声假音听的人都酥了 2019-08-01
  • 运城市在长三角招商引资149.9亿元 2019-07-29
  • AI识别图像技术相关新闻 2019-07-29
  • 吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|北京快三走势图一定牛 www.88pwc.com

     找回密码
     注册[Register]

    QQ登录

    只需一步,快速开始

    搜索
    查看: 4171|回复: 20
    上一主题 下一主题

    北京快3官网app: [Android 原创] 逆向练手——一个app从java到so加密逆向分析过程

    [复制链接]
    跳转到指定楼层
    楼主
    xiexie 发表于 2019-6-3 17:54 回帖奖励
    本帖最后由 xiexie 于 2019-6-3 19:01 编辑

    此APP正常情况下fd是无法抓到包??袅薺usttrustme插件也抓不到。但是可以在模拟器中登录app,使用Http Debugger抓到提交的数据包。

    从提交的数据包初步分析,只有sign需要解密。


    数据包有了,接下来进行初步的静态分析,使用jadx搜索"sign",比较方便的找到了sign的出处。


    一步步跟踪方法调用后发现,是在so里面进行了加密工作:




    结合抓包数据,以及分析sign的前后代码发现:参数str 为空,参数token为空,参数3为时间戳。


    下面开始so的分析,看看so中进行了哪些加密操作。

    首先解压apk,拖出wtf.so


    将so文件拖入IDA,第一步既是查看Exports,由于JNI是静态注册的,所以很容易就定位到了加密函数:




    F5转换为伪C代码,整理好代码,进行so文件的初步静态分析。由于代码还算清晰,比较容易定位到了加密函数,初步判断是一个MD5


    一路跟下去,发现此函数具有典型的MD5加密特征:(加密特征可以看另外一篇帖子://www.88pwc.com/thread-937282-1-1.html)



    到这里基本明白,传入的数据在SO中进行了MD5加密。所以接下来动态调试看看此加密函数的三个参数分别是什么。

    新开启一个IDA。

    为嘛要新开启一个IDA呢,因为动态调试状态下,IDA会简化很多解析,让代码看起来更加难懂。比较方便的是一个IDA做静态分析,一个IDA做动态调试,可以互相参考。

    开启IDA的debugger,选择安卓远程调试 Attach(debugger——>Attach——>Remote ARMLinux/Android debugger)将host设置为本地,端口默认

    点OK后在进程列表里选择要调试的进程包名。这个的前提是,已在设备上启动了要调试的APP

    再次点击OK后等待附加进程完毕。进程附加完毕后,F9让程序继续运行起来。



    接下来查康Module选项卡,找到要分析的so文件


    双击跟入,一直到要调试的函数汇编代码处。F5转换成伪C代码,

    这里可以看出来动态调试的时候,和静态分析时看到的代码差别很大。IDA在动态调试状态下不会将所有东西解析出来。


    结合另外一个IDA进行的静态分析,确定需要在哪个BLX下断点.双击进入后,按C,将代码解析成汇编代码。

    可以看到被识别出来的函数名。(静态分析的时候能识别出来的就能显示出来)将函数名重命名,方便后继使用。




    回到汇编代码处,下断点,然后进行触发断点的运行,成功断下。


    依据静态分析得知,我们需要得到此函数的三个参数,所以分别是R0,R1,R2寄存器的值。

    查看寄存器的值,分别得出了参数1,参数2的值。

    R1(即参数2)的值:2D ,(十六进制)转换成十进制为45,与参数1长度相符。


    接下去分析r0值的构成:

    由于在java层静态分析中得知,传入so层加密的三个参数中,前两个参数是空,只有第三个参数有值,是时间戳。

    而so层的加密函数中,r0的值却是一串字符串+传进来的时间戳组成,必须找到这个字符串的来源。

    加密函数中这个getAppSign很可疑。这是通过回调java层函数获得appsign,初步猜测,由于我们并没有修改过app,所以这个函数获得的appsign基本可以确定是正确的,而也是固定的。


    本着追根朔源的精神,返回java层寻找getAppSign()函数求证。





    由java层分析得知,前面的猜想正确。

    最后单步运行让加密函数运行完毕,然后查看R2寄存器的值已经存在,即是函数运行完毕的返回值。


    将r0的值进行MD5加密,与从R2获得的值对比,正确。
    至此,调试完毕。分别获得了加密所需要的参数,和运行流程。后期进行加密还原即可。

    给需要的小伙伴练手,样本盘里下:
    链接:https://pan.baidu.com/s/1drQk-gYR8w1CQFq7hBfx1w
    提取码:gy9a



    17.jpg (44.42 KB, 下载次数: 1)

    17.jpg

    17.jpg (44.42 KB, 下载次数: 0)

    17.jpg

    免费评分

    参与人数 15威望 +2 吾爱币 +28 热心值 +14 收起 理由
    huangyutong + 1 + 1 谢谢分享,楼主能不能把样本再发一次,原先链接失效了
    c404719517 + 1 + 1 谢谢@Thanks!
    hjw45611 + 1 + 1 我很赞同!
    drakpj + 1 + 1 谢谢@Thanks!
    笙若 + 1 + 1 谢谢@Thanks!
    fei8255 + 1 + 1 用心讨论,共获提升!
    qtfreet00 + 2 + 12 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
    cxp521 + 1 + 1 谢谢@Thanks!
    长日鸿阳 + 1 + 1 用心讨论,共获提升!
    莫问刀 + 1 + 1 用心讨论,共获提升!
    frankyxu + 1 + 1 谢谢@Thanks!
    江南小公子 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
    cnzmg + 1 + 1 用心讨论,共获提升!
    Gentlewang + 3 + 1 用心讨论,共获提升!
    涛之雨 + 1 + 1 用心讨论,共获提升!

    查看全部评分

    发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

    推荐
    莫问刀 发表于 2019-6-3 20:04
    root的手机,xposed,ida Pro 电脑各种软件齐备,会Java层静态分析,会smali动态调试。就是不会ida动态调试。
    推荐
    涛之雨 发表于 2019-6-3 18:19
    只可惜用ida动态的分析需要root手机。。。。
    但是虚拟机又太慢了。。。。
    所以。。。
    先收藏。等root手机吧。。。。

    建议楼主把测试软件打包发到论坛。。。方便进行学习
    4#
    阿秉 发表于 2019-6-3 18:09
    5#
    ts0001 发表于 2019-6-3 18:54
    不太懂但还是感谢楼主发帖
    6#
    frankyxu 发表于 2019-6-3 19:14
    建议把app打包一下,方便测试
    7#
    努力的小七 发表于 2019-6-3 20:15
    学习了,谢谢大佬分享!
    8#
    qyinu 发表于 2019-6-3 22:08
    厉害了  楼主,学习mark一下
    9#
    长日鸿阳 发表于 2019-6-4 01:06
    完全看不懂,但还是感谢楼主发帖?。?!
    10#
    chenjingyes 发表于 2019-6-4 01:20
    值得学习,谢谢楼主分享
    您需要登录后才可以回帖 登录 | 注册[Register]

    本版积分规则 警告:禁止回复与主题无关内容,违者重罚!

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

    RSS订阅|小黑屋|联系我们|北京快三走势图一定牛 ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

    GMT+8, 2019-9-17 11:16

    Powered by Discuz!

    © 2001-2017 Comsenz Inc.

    快速回复 北京快三走势图一定牛 返回列表
  • 新时代幸福美丽新边疆 2019-09-15
  • 华强方特从“熊出没”走向内容产业化 2019-09-12
  • 暴瘦50斤,70岁的她爱穿比基尼,活得比少女还滋润! 2019-09-12
  • 科大讯飞拟募资金约36亿 加码人工智能 2019-09-05
  • 【人民映像】霍庆有:匠心神韵 杨柳青青 2019-09-05
  • 用责任制拧紧安全阀(快评) 2019-08-30
  • 和亲戚一起学习传统文化 2019-08-25
  • 美国对华加征关税相关新闻 2019-08-16
  • 乌苏市:“扶贫鸡”助力精准脱贫 2019-08-14
  • 一二线城市土地出让冰火两重天 2019-08-14
  • 西安高科工程技术学校——陕西省政府直属中等职业院校西安高科工程技术学校2018招生简章-陕西教育新闻 2019-08-07
  • Angelababy高扎马尾坐雪地大笑显俏皮 双手浸冰水被邓超赞“猛女” 2019-08-06
  • 游戏主播GodV韦神即兴演唱 这一声假音听的人都酥了 2019-08-01
  • 运城市在长三角招商引资149.9亿元 2019-07-29
  • AI识别图像技术相关新闻 2019-07-29
  • 2019赚钱网络赚钱项目 最好的北京快三预测软件 新浪足球彩票首页 nba明星图片卡通 爱彩乐重庆快乐十分 幸运赛车中奖说明 快乐十分任五中奖规则 青海11选五开奖 138开奖现场 牌九 陕西快乐十分开奖号码 六肖中特料 复式分解器 贵州快三形态走势一定牛 北京快乐8开奖走势图