zoukankan      html  css  js  c++  java
  • android加固系列—3.加固前先学会破解,静态修改so

    【版权所有,转载请注明出处。出处:http://www.cnblogs.com/joey-hua/p/5138585.html】

    项目jni的关键代码(项目地址见文章底部),获取当前程序的包名com.example.shelldemo和com.example.nocrack对比,正常运行结果是this app is illegal,编译jni我就不介绍了,项目中也带了编译好的so

    1.工具介绍

    IDA6.5,静态分析so文件用

    010 Editor,修改so文件16进制码

    2.IDA分析so

    so拖入IDA直接定位到关键代码处,BEQ意思是上一行的CMP比较指令如果R0等于0就跳转到loc_ED0处,也就是成功运行处。但实际程序运行后R0的值不等于0.

     

    然后进入options | General

     

     

    如下显示,把每行对应的16进制机器码显示出来了

     

    可以看出跳转指令B对应的16进制机器码为E0,我们现在要做的就是把0EC2处的指令改成B loc_ED0,意思就是不用判断上一行的CMP指令直接跳转。

    2.010 Editor修改so

    打开010 Editor,把so文件拖入,找到0EC2处,注意一个数字是4位,两个数字是8位一个字节,所以从0EC0处开始数第三个(起始0

     

    手动把D0改成E0,注意一个数字一个数字的改

     

    保存,然后重新运行项目,奇迹就发生了,程序running successfully了。

    其实也可以把修改后的so重新拖入IDA可以看出0EC2行变成了B而不是曾经的BEQ

     

    一个码农的日常 

    crackme项目地址

    IDA工具地址

    010 Editor地址

  • 相关阅读:
    linux时间格式化
    mysql5.7 安装版安装
    mac下面安装多个JDK
    linux一台机器文件传到另一台机器上
    取模运算
    【UVALive 7334】Kernel Knights
    【HDU 2604】Queuing
    【CodeForces 577B】Modulo Sum
    【CodeForces 504A】Misha and Forest
    【HDU 2203】亲和串
  • 原文地址:https://www.cnblogs.com/joey-hua/p/5131276.html
Copyright © 2011-2022 走看看