zoukankan      html  css  js  c++  java
  • 逆向工程-对native层的一次简单逆向实践

      关注一款app很久了,这款app为了防止别人逆向破解拉取数据做了很多工作:

    防止别人修改apk包,执行关键动作时对dex文件进行md5验证;

    防止用户调用接口批量拉数据,对返回的web网页里个人信息进行加密,只有用户点击webview相关控件后,才js调用java代码通过jni调用底层native代码解密后,弹出toast显示个人信息;

      我按照逆向工程一贯的思路:

    1. 先apk转化jar,查看jar代码,被混淆了,

    2. 混淆只是最低级层次的防护,费点时间,主要逻辑点还是能看出来的,理清逻辑后开始反编译,smali文件插入自己的代码,重新打包运行,发现有些关键动作无法执行,失败;

    3. 仔细研究才发现做了包校验;又接着看混淆后的代码,发现其网页解密是通过jni调用底层so文件,于是自己写一个android的demo,尝试调研so中解密方法,返回空串,失败;

    4. ida 打开so文件,查看arm汇编代码,发现解密方法里也有包校验,于是修改so文件,绕过包校验,重新尝试调用,成功

    所用工具:

    anti-android:集成了dex2jar,jad,apktool

    jd-gui

    arm汇编查看机器码: http://bbs.pediy.com/showthread.php?p=1156571

    ida pro

    Winhex

  • 相关阅读:
    第二阶段团队冲刺第二天站立会议
    第二阶段冲刺第一天站立会议
    对身边常用的软件进行评价
    学习进度条
    进度条
    团队冲刺第四天站立会议
    用户模板及场景分析
    团队冲刺第一天战略会议
    团队冲刺第九天
    团队冲刺第八天
  • 原文地址:https://www.cnblogs.com/salomon/p/3963887.html
Copyright © 2011-2022 走看看