longhong 发表于 2018-6-28 19:15

【手机端】腾讯乐固,360加固一键脱壳

本帖最后由 longhong 于 2018-6-29 13:06 编辑

手机端一键脱魔术壳

需要用到的软件如下:
1.脱壳.apk(修改版)


正版下载地址:
https://bbs.pediy.com/thread-224105.htm


此软件需要激活xp框架



如果手机无法开启xp框架,有以下两种方法:
1.电脑安卓模拟器法
安装电脑版安卓模拟器,安装xp框架,root授权,激活,安装脱壳.apk。


2.安卓版vxposed,无需root刷机即可使用xp框架。
官网下载: https://vxposed.com/


安装好了激活好了脱壳.apk
我们开始脱壳,以腾讯乐固为例。

-------------------------------------------------
https://attach.52pojie.cn/forum/201806/28/190019ngougoygy38887ox.png
第一步,激活
-----------------------------------------------------
https://attach.52pojie.cn/forum/201806/28/190018jcz2jb5pzaqljpx2.png
第二步,选择自己需要脱壳的软件
第三步,运行软件,不打开运行软件是无法脱出壳的
————————————————————————
https://attach.52pojie.cn/forum/201806/28/190019o2fo1qsmsl84lmo3.png
第四步,找到对应的目录,你选择脱壳的软件时会提示你输出的目录!
dex脱出来是在软件的数据目录下data/com.xx.yy
对于没root的用户,也不用担心,因为其实是在VirtuanXposed的数据目录下的。
所以我们只要进入VirtuanXposed的数据目录就行,但是直接上级目录上级目录的点,是进不了的。
我们只需长按MT2的上级目录按钮,输入
/data/user/0/io.va.exposed/virtual/data/user/0/



https://cdnimage.bbs.binmt.cc/forum/201802/27/185713v8f8kimryplhkpjf.png

------------------------------------------------------------------------------
https://cdnimage.bbs.binmt.cc/forum/201802/27/185722uycotcawc2awhu2x.png
看到没这就是我们脱出来的dex,注意,不是每个dex都有用,有的dex没有用的,你要自己每个打开看看。



好了,教程到此结束,当然脱壳并不是意味着结束,还要修复,修改启动界面,等我找个软件,来实例破解一次,从脱壳,到修改代码,再到修复打包运行,希望各位免费评分,有了动力马上开始破解实例!!!!

samvon 发表于 2018-6-28 23:01

你发个教程可以给你个赞,但是你拿个盗版的来就有点不太好了,直接发个正版不好吗?


上图是正版,下图楼主发的改个包名改个签名而已,看看正版的包名和代码
正版的在这
https://bbs.pediy.com/thread-224105.htm

bfvA178 发表于 2018-6-28 19:51

脱了不修复有什么用

wuyy 发表于 2018-6-28 20:03

收藏 学习一下

tegl 发表于 2018-6-28 19:39

感谢分享精品

不败的米 发表于 2018-7-20 14:34

samvon 发表于 2018-6-28 23:01
你发个教程可以给你个赞,但是你拿个盗版的来就有点不太好了,直接发个正版不好吗?




FDex2核心代码MainHook
package com.ppma.xposed;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.lang.reflect.Method;

import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XSharedPreferences;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage;

public class MainHook implements IXposedHookLoadPackage {

    XSharedPreferences xsp;
    Class Dex;
    Method Dex_getBytes;
    Method getDex;
    String packagename;


    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
      xsp = new XSharedPreferences("com.ppma.appinfo", "User");
      xsp.makeWorldReadable();
      xsp.reload();
      initRefect();
      packagename = xsp.getString("packagename", null);
      XposedBridge.log("设定包名:"+packagename);
      if ((!lpparam.packageName.equals(packagename))||packagename==null) {
            XposedBridge.log("当前程序包名与设定不一致或者包名为空");
            return;
      }
      XposedBridge.log("目标包名:"+lpparam.packageName);
      String str = "java.lang.ClassLoader";
      String str2 = "loadClass";

      XposedHelpers.findAndHookMethod(str, lpparam.classLoader, str2, String.class, Boolean.TYPE, new XC_MethodHook() {
            protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                super.afterHookedMethod(param);
                Class cls = (Class) param.getResult();
                if (cls == null) {
                  //XposedBridge.log("cls == null");
                  return;
                }
                String name = cls.getName();
                XposedBridge.log("当前类名:" + name);
                byte[] bArr = (byte[]) Dex_getBytes.invoke(getDex.invoke(cls, new Object), new Object);
                if (bArr == null) {
                  XposedBridge.log("数据为空:返回");
                  return;
                }
                XposedBridge.log("开始写数据");
                String dex_path = "/data/data/" + packagename + "/" + packagename + "_" + bArr.length + ".dex";
                XposedBridge.log(dex_path);
                File file = new File(dex_path);
                if (file.exists()) return;
                writeByte(bArr, file.getAbsolutePath());
            }
            } );
    }

    public void initRefect() {
      try {
            Dex = Class.forName("com.android.dex.Dex");
            Dex_getBytes = Dex.getDeclaredMethod("getBytes", new Class);
            getDex = Class.forName("java.lang.Class").getDeclaredMethod("getDex", new Class);
      } catch (ClassNotFoundException e) {
            e.printStackTrace();
      } catch (NoSuchMethodException e) {
            e.printStackTrace();
      }

    }

    publicvoid writeByte(byte[] bArr, String str) {
      try {
            OutputStream outputStream = new FileOutputStream(str);
            outputStream.write(bArr);
            outputStream.close();
      } catch (IOException e) {
            e.printStackTrace();
            XposedBridge.log("文件写出失败");
      }
    }
}

zuiai125520 发表于 2018-6-28 19:24

emmm蛮收藏下 虽然自己不太懂 改天玩玩学习下

w5645060 发表于 2018-6-28 19:26

无情绝恋 发表于 2018-6-28 19:31

期待你做的教程

a346349632 发表于 2018-6-28 19:40

看你上长传的APK就大小就有问题

noah88 发表于 2018-6-28 20:05

脱壳容易修复难,不过可以hook

TRUMPK 发表于 2018-6-28 20:08

这个可以看看
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 【手机端】腾讯乐固,360加固一键脱壳