吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 43214|回复: 98
收起左侧

[移动样本分析] Root锁机破解教程,新手也能学会破解加密算法的锁机

  [复制链接]
孤云 发表于 2018-7-7 15:11
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
本帖最后由 孤云 于 2018-7-7 16:00 编辑

经过上一次分析失败的我又回来了,由于我不是专业搞逆向的,就不解说那么详细了。
先说下这次的主要思路:主要就是把锁机的dex提取出来转成jar包,然后直接调用里面的方法就能算出密码了。
下面开始教程:
首先把锁机提取出来(怎么提取就不说了,上一篇有教程),接着拖进Android Killer,找入口
入口.png
跟进去看看,
1.png
申明了几个全局变量,让后在下面进行赋值
4.png
这里就是一系列运算然后加密,就是解锁密码了
[Java] 纯文本查看 复制代码
  int i = (int)(Math.random() * 1000000) + 4;//生成一个6位的随机数然后+4
    int j = (int)(Math.random() * 1000000) + 5;//生成一个6位的随机数然后+5
    int k = (int)(Math.random() * 1000000) + 6;//生成一个6位的随机数然后+6
    this.a6 = mx6.Jem(mx6.Jem(mx6.Jem("СвОгСвПдСвкбСвПзСвОгСвПдСвкбСвПжСвОгСвПдСвкбСвПзСвОгСвПдСвкбСвПж")));//调用mx6里的Jem方法解密
    this.a7 = mx6.Jem(mx6.Jem(mx6.Jem("СвОгСвПдСвкбСвПзСвОгСвПдСвкбСгкгСвОгСвПдСвкбСвПзСвОгСвПдСвкбСгкг")));
    this.a8 = mx6.Jem(mx6.Jem(mx6.Jem("СвОгСвПдСвкбСвПзСвОгСвПдСвкбСвПзСвОгСвПдСвкбСвПзСвОгСвПдСвкбСвПз")));
    int m = 41779 + 46148 + 50517 - 59255 + 161 >> 2;//申明一个int类型的变量,然后经过一系列的运算后赋值给m
    int n = 41779 + 54886 + 46148 + 50517 + 178 >> 2;
    int i4 = 41779 + 46148 + 50517 + 195 >> 2;
    int i1 = 41779 + 46148 + 50517 + 212 >> 2;
    int i2 = 41779 + 46148 + 50517 + 229 >> 2;
    int i3 = (m - 6 - 4 - 5 - 4 + i4 + i1 + i2) * 2 * 3 * 4 * 5 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11;
    i4 = n + i1 - 6 + 4 + m + i4 + i2 ^ 0x0;
    int i5 = 4928 + i3 + i4 >> 9;
    long l1 = i3 + 46148 + 54886 + i2 + m + (i3 + i5 + i4 >> 2 ^ 0x9) ^ i;
    long l2 = i5 + n + i2 + 59255 + 50517 + 54886 ^ j;
    long l3 = i4 + i5 + i1 + m + 54886 + 59255 + 50517 + 41779 ^ k;
    this.a9 = (this.a6 + l1);  //调用申明的成员属性然后加上l1在赋值给a9
    this.a10 = (this.a7 + l2);
    this.a11 = (this.a8 + l3);


这里就是判断然后进入下一层什么的
这里说明下  this.val$梦想爸爸 = l1 ,this.val$破解者梦想操你妈 = l2 ,this.val$葫芦侠梦想草你妹 = l3,这里掉坑里去了,找半天没看到哪里赋值的,结果Android Killer 反编译的时候那些代码不见了,最后用手机MT管理器看到的...
[Java] 纯文本查看 复制代码
if (this.val$crk.getText().toString().equals(String.valueOf(mx5.梦想66("" + this.val$梦想爸爸)))) //获取输入框的值 ,然后判断mx5.梦想66加密后的this.val$梦想爸爸如果相等就进入下一层
          {
            this.val$h.setText("当前层数:最后一层");//下一层显示的文字
            this.val$hh.setText("解锁30元");
            this.val$xlh.setText(mx3.jm("" + this.val$xlh1));
            this.val$Lt1.setBackgroundColor(-7829368);
            return;
          }
          if (this.val$crk.getText().toString().equals(String.valueOf(mx5.梦想6("" + this.val$破解者梦想操你妈))))
          {
            this.val$h.setText("最后一层,信不信由你");
            this.val$hh.setText("解锁50元");
            this.val$hhhh.setText("解开这一层手机就可以使用了");
            this.val$xlh.setText(mx3.jm("" + this.val$xlh2));
            this.val$Lt1.setBackgroundColor(-16776961);
            return;
          }
        } while (!this.val$crk.getText().toString().equals(String.valueOf(mx5.梦想6666("" + this.val$葫芦侠梦想草你妹))));


这是加密类,复制进eclipse报错,还要修复。这里就是采取的另一个方式了,把apk后缀改为zip然后解压,找到classes.dex然后用dex2jar把dex转换成jar文件。
加密.png jar.png
dex2jar 链接:https://pan.baidu.com/s/1guW34V6yVHxHzInZyIYt6Q 密码:g7mv

接下来就好办了,把那些运算代码复制粘贴到eclipse里,在导入上面转的jar包,改一下代码运行就能算出密码了(代码写的查凑合着看吧)。
下面附上代码
[Java] 纯文本查看 复制代码
public class Test{
          private String a10;
          private String a11;
          private String a6;
          private String a7;
          private String a8;
          private String a9;
        
        public static void main(String[] args) {
        String b  [] = {"&","①","÷","∷","●","©","®","★","※","/"};//这个没啥用我就是拿来复制的
                Test t = new Test();
                String str = "①★/&①®";//这里是我测试的解密
                t.getPassword(str);
        }
        
        /**
         * 获取密码
         * @param str
         * @return
         */
        public void getPassword(String str){
            int i = Integer.valueOf(set(str));//第一层,把随机数改为序列号
            int j = Integer.valueOf(set(str));//第二层
            int k = Integer.valueOf(set(str));//第三层
            this.a6 = mx6.Jem(mx6.Jem(mx6.Jem("СвОгСвПдСвкбСвПзСвОгСвПдСвкбСвПжСвОгСвПдСвкбСвПзСвОгСвПдСвкбСвПж")));//11
            this.a7 = mx6.Jem(mx6.Jem(mx6.Jem("СвОгСвПдСвкбСвПзСвОгСвПдСвкбСгкгСвОгСвПдСвкбСвПзСвОгСвПдСвкбСгкг")));//22
            this.a8 = mx6.Jem(mx6.Jem(mx6.Jem("СвОгСвПдСвкбСвПзСвОгСвПдСвкбСвПзСвОгСвПдСвкбСвПзСвОгСвПдСвкбСвПз")));//33
            int m = 41779 + 46148 + 50517 - 59255 + 161 >> 2;
            int n = 41779 + 54886 + 46148 + 50517 + 178 >> 2;
            int i4 = 41779 + 46148 + 50517 + 195 >> 2;
            int i1 = 41779 + 46148 + 50517 + 212 >> 2;
            int i2 = 41779 + 46148 + 50517 + 229 >> 2;
            int i3 = (m - 6 - 4 - 5 - 4 + i4 + i1 + i2) * 2 * 3 * 4 * 5 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11;
            i4 = n + i1 - 6 + 4 + m + i4 + i2 ^ 0x0;
            int i5 = 4928 + i3 + i4 >> 9;
            long l1 = i3 + 46148 + 54886 + i2 + m + (i3 + i5 + i4 >> 2 ^ 0x9) ^ i;
            long l2 = i5 + n + i2 + 59255 + 50517 + 54886 ^ j;
            long l3 = i4 + i5 + i1 + m + 54886 + 59255 + 50517 + 41779 ^ k;
            this.a9 = (this.a6 + l1);
            this.a10 = (this.a7 + l2);
            this.a11 = (this.a8 + l3);
            String s = String.valueOf(mx5.梦想66("" + l1));//调用的jar包的方法
            System.out.println("第一层密码:" + s);
            String s2 = String.valueOf(mx5.梦想6("" + l2));
            System.out.println("第二层密码:" + s2);
            String s3 = String.valueOf(mx5.梦想6666("" + l3));
            System.out.println("第三层密码:" + s3);
        }
        
        /**
         * 序列号替换
         * @param s
         * @return
         */
        public static String set(String s)
    {
        String[] a=           {"0","1","2","3","4","5","6","7","8","9"};
        String b  [] = {"&","①","÷","∷","●","©","®","★","※","/"};
                String sss=s;
        for(int i=0;i<10;i++)
        {
            sss=sss.replaceAll(b[i],a[i]).toString();
        }
        StringBuffer sb=new StringBuffer(sss);
        String ss=sb.toString();
        return new String(ss);
    }        
        
}

解说的有点不清晰,有什么不懂的地方可以问我,哪里说得不对也可以指出。
下面是我的测试截图,这样就解开了。
第一层.png 第三层.png 第二层.png

免费评分

参与人数 28威望 +1 吾爱币 +39 热心值 +27 收起 理由
yongjie180 + 1 + 1 热心回复!
siuhoapdou + 1 + 1 谢谢@Thanks!
圣诞科技 + 1 谢谢@Thanks!
Sibe + 1 + 1 谢谢@Thanks!
橘生淮北,为枳 + 1 + 1 热心回复!
acdseev + 1 + 1 热心回复!
Hmily + 1 + 10 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
临时嘉宾 + 1 + 1 用心讨论,共获提升!
冰涔 + 1 + 1 热心回复!
13129761422 + 1 + 1 我很赞同!
yer + 1 + 1 谢谢@Thanks!
两只奥特曼 + 1 + 1 谢谢@Thanks!
liphily + 3 + 1 死逼骗子,坑钱还三重咒,这种人咋就死不绝
下弦乀月 + 1 + 1 谢谢@Thanks!
awzs7758520 + 1 + 1 我很赞同!
kuigh + 1 + 1 谢谢@Thanks!
敬哥哥 + 1 + 1 大佬。我下次遇到锁机问题可以 直接找你吗?
52pojie_user_08 + 1 + 1 厉害了,感谢发布原创作品,吾爱破解论坛因你更精彩!
哈哈呵呵哒哒 + 1 + 1 我很赞同!
Trirabbits + 1 + 1 谢谢@Thanks!
独行风云 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
zhh4827 + 1 + 1 热心回复!
轻描淡写9714 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
二逼159 + 1 + 1 广告贴,请遵守论坛版规!
Believe832 + 1 + 1 用心讨论,共获提升!
随风而逝aY + 1 + 1 热心回复!
我下了 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
半瓶神仙醋 + 1 + 1 期待

查看全部评分

本帖被以下淘专辑推荐:

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

轻描淡写9714 发表于 2018-7-8 08:23
孤云 发表于 2018-7-7 20:02
说一下哪里不明白,我在仔细解释下

[Java] 纯文本查看 复制代码
 this.a6 = mx6.Jem(mx6.Jem(mx6.Jem("СвОгСвПдСвкбСвПзСвОгСвПдСвкбСвПжСвОгСвПдСвкбСвПзСвОгСвПдСвкбСвПж")));//11
            this.a7 = mx6.Jem(mx6.Jem(mx6.Jem("СвОгСвПдСвкбСвПзСвОгСвПдСвкбСгкгСвОгСвПдСвкбСвПзСвОгСвПдСвкбСгкг")));//22
            this.a8 = mx6.Jem(mx6.Jem(mx6.Jem("СвОгСвПдСвкбСвПзСвОгСвПдСвкбСвПзСвОгСвПдСвкбСвПзСвОгСвПдСвкбСвПз")));//33

就这三行代码,不知道是要做什么功能用,没有接触过这种类型,能解释一下么?
debug_cat 发表于 2018-8-16 10:31
牛逼啊,这样分析很到位,如果作者把加解密的东西放so里面用native来做,估计难度就很高,不过这个能破解已经很厉害了。牛逼,楼主有没有兴趣破解另一个锁机软件啊。我昨天手机版被锁,但我用adb shell su进入把apk删除了,成功解锁,但是我想通过破解他加密算法来破解,就像本文一样,但是目前破解过程遇到困难,好无头绪了。链接: https://pan.baidu.com/s/1qIDQkmiP5ezQjZOZhBTUlQ 密码: wj77;如果有进展记得发帖分享哦;千万别用真机,无root也能锁住
 楼主| 孤云 发表于 2018-7-7 15:23
MYLQG2ZHX 发表于 2018-7-7 15:36
不明觉厉
Ocean老班长 发表于 2018-7-7 15:46
我们这些小白看不懂哇   暴力解锁吗?
eilljs 发表于 2018-7-7 15:49
一直不懂锁别人手机的是什么想法

免费评分

参与人数 1热心值 +1 收起 理由
liphily + 1 敲诈勒索点钱,失败了也没损失

查看全部评分

 楼主| 孤云 发表于 2018-7-7 15:52
Ocean老班长 发表于 2018-7-7 15:46
我们这些小白看不懂哇   暴力解锁吗?

很简单的,会Java基础都能学会破解
天道法海 发表于 2018-7-7 16:07
- -大佬下次能不能出个教程啊?这图文。。。。没看明白。。。。。
kumwingchiu 发表于 2018-7-7 16:46
先学习一下吧!应该学不会
emin199 发表于 2018-7-7 16:48
没看明白!!!
湫兮如风丶 发表于 2018-7-7 16:51
2333葫芦侠的锁机软件吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 08:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表