字符串解密算法还愿

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[] enStrBytes, int decFlag, int 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版一的更多相关文章

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

    编写脚本批量还愿JEB 加密字符串 解密完后效果如下: 脚本源码: https://github.com/bingghost/JebPlugins 思路: 下面的该封装的基本都封装了,过程如下: 1. ...

  2. java应用破解之破解 jeb mips 2.3.3

    前言 jeb 的新版支持 mips的反编译 ,于是去官网申请一个试用版,试用版的限制还是比较多的,比如 使用时间验证,没法复制粘贴 等,于是想尝试看看能否破解,同时填了 java破解 这个坑. 修改版 ...

  3. FusionChart 水印破解方法(代码版)

    网上一直找不到有关去除水印的方法! 正好做项目要用到这个鬼东西,折腾了一天,总算破解成功,把方法告诉大家. 先看下破解前的效果. 这是个很烦人的东西,而且有一个更加让人烦人的地方, 就是根本无法买!为 ...

  4. VC2010的破解方法(针对旗舰版)

    VS2010 正式版破解方法详解 全球开发者最为瞩目的Visual Studio 2010开发工具在4月12日正式发布,现为大家制作一个简单的破解教程有两种方法,操作不一样,原都一样(针对旗舰版,其他 ...

  5. 破解 jeb 2.3.7 demo

    前言 使用的技术和上文的一样. mips 版本的修改版 修改版: https://gitee.com/hac425/jeb-mips 正文 安卓版 jeb-2.3.7.201710262129-JEB ...

  6. CENTOS6 下MATLAB2014b的安装和破解(Matlab_R2014b linux版 安装笔记)

    参考:http://www.jianshu.com/p/f0cefc737dda ①在下载matlab linux版.iso, ②在windows下用ULTRAISO软件提取 ③用crack中的ins ...

  7. Web攻防之暴力破解(何足道版)

    原创文章 原文首发我实验室公众号 猎户安全实验室 然后发在先知平台备份了一份 1 @序 攻防之初,大多为绕过既有逻辑和认证,以Getshell为节点,不管是SQL注入获得管理员数据还是XSS 获得后台 ...

  8. 小组冲刺第十一天站立会议(发布Alpha版+网站链接)

    注: “助成”招聘网站链接:http://58.87.74.131:8080/zhucheng 欢迎大家进行评测. 一.任务看板: 二.燃尽图: 三.团队成员合照: 四.任务总结: 今天我们发布网站B ...

  9. Linux Linux程序练习十一(网络编程大文件发送UDP版)

    //网络编程发送端--大文件传输(UDP) #include <stdio.h> #include <stdlib.h> #include <string.h> # ...

随机推荐

  1. linux下拷贝命令中的文件过滤操作记录

    在日常的运维工作中,经常会涉及到在拷贝某个目录时要排查其中的某些文件.废话不多说,下面对这一需求的操作做一记录: linux系统中,假设要想将目录A中的文件复制到目录B中,并且复制时过滤掉源目录A中的 ...

  2. 去除多余的cell 和最后一行cell显示顶头底线

    去除多余cell YourTableview.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero]; 最后一行cell底线顶头显示 s ...

  3. ESXi5.5下的Centos7虚机配置静态IP

    使用的是osboxes.org上下载的已安装centos7 image, 在启动后, ifconfig不能看到网卡, 需要关机后在ESXi客户端编辑虚机, 删除网卡, 保存, 添加网卡, 网卡类型选择 ...

  4. 关于安卓工程导出带res资源文件的jar的总结

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 29.0px; font: 16.0px "Microsoft YaHei" ...

  5. Linux进程管理子系统分析【转】

    本文转载自:http://blog.csdn.net/coding__madman/article/details/51298732 Linux进程管理: 进程与程序: 程序:存放在磁盘上的一系列代码 ...

  6. .NET定时任务执行管理器开源组件–FluentScheduler

    在日常项目里通常会遇到定时执行任务的需求,也就是定时器..NET Framework里关于定时器的类有3个,分别是System.Windows.Forms.Timer.System.Timers.Ti ...

  7. Windows下Nginx Virtual Host多站点配置详解

    Windows下Nginx Virtual Host多站点配置详解 此教程适用于Windows系统已经配置好Nginx+Php+Mysql环境的同学. 如果您还未搭建WNMP环境,请查看 window ...

  8. Python2.7.6标准库内建函数

        Built-in Functions     abs() divmod() input() open() staticmethod() all() enumerate() int() ord( ...

  9. Java static 静态代码块执行分析

    假设有这样一个类: public class Utils { static { Log.i("static","isLoad!"); } public stat ...

  10. springMVC Aspect AOP 接口耗时统计

    在接口开发中,我们通常需要统计接口耗时,为后续接口性能做统计.在springMVC中可以用它的aop来记录日志. 1.在spring配置文件中开启AOP <!--*************** ...