码迷,mamicode.com
首页 > 其他好文 > 详细

十一. 一步步破解JEB 2.0demo版一

时间:2016-08-29 22:34:50      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:

字符串解密算法还愿

jeb.jar为核心功能,所以主要分析这个
1. jar转dex在使用jeb分析
Android\sdk\build-tools\23.0.3
dx.bat --dex --output=输出目录 jeb.jar(路径)


2. 载入分析发现很多字符串加密之后的字节数组
技术分享


3.解密字符串代码在这里,把代码拷贝出来,直接解密发现乱码
技术分享

4.仔细分析Smali代码发现问题出在寄存器解析上
技术分享

这是因为v1寄存器重用了, 把v1_1修改成v1 即可成功解密字符串
技术分享

5.算法也不难可以直接还原,还原后代码如下
private static String setString(byte[] bytes_str) {
    String new_str;
    
    try {
        new_str = new String(bytes_str"UTF-8");
    }
    catch(Exception e) {
        new_str = new String(bytes_str);
    }
    return new_str;
}
public static String decStr(byte[] enStrBytesint decFlagint encode) {
    byte[] decstrArray;
    int enstrLen;
    if(enStrBytes == null) {
        return "decode error";
    }
    
    if (decFlag == 0 || enStrBytes.length == 0) {
        return setString(enStrBytes);
    }
    
    if(decFlag == 1) {
        enstrLen = enStrBytes.length;
        decstrArray = new byte[enstrLen];
        byte bEncode = ((byte)encode);
        
        for (int i = 0;i < enstrLen;i++) {
            decstrArray[i] = ((byte)(bEncode ^ enStrBytes[i]));
            bEncode = decstrArray[i];
        }
        return setString(decstrArray);
    }
    
    if(decFlag == 2) {
        enstrLen = enStrBytes.length;
        decstrArray = new byte[enstrLen];
        String coprightString = "Copyright (c) 1993, 2015, Oracle and/or its affiliates. All rights reserved. ";
        int index = 0;
        for (int i = 0;i < enstrLen;i++) {
            decstrArray[i] = ((byte)(enStrBytes[i] ^ (((byte)coprightString.charAt(index)))));
            index = (index + 1) % coprightString.length();
        }
        return setString(decstrArray);
    }
    
    return "decode error";
}  


算法比较简单:
当Flag为0时,直接转换成字符串即可
当Flag为1时,简单的异或加密
当Flag为2时,和一个Copyright字符串声明做异或运算


最后解密的效果如下:
技术分享


但是这样的代码实在是太多,我们只好上核武器JEB脚本
在下个章节介绍如何写JEB脚本去批量修改






十一. 一步步破解JEB 2.0demo版一

标签:

原文地址:http://www.cnblogs.com/bingghost/p/5819716.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!