Jeb动态调试apk

一、准备工作

1、JEB 版本 2.2.7 ,说明: 不是此版本的请自行采坑,坑坑更健康!!!

2、app名称 : 5aSp5rav56S+5Yy6YXBwIOeJiOacrOWPtyA3LjAuMQ==

3、app下载链接 : aHR0cDovL3d3dy50aWFueWEuY24vbW9iaWxlLw==

4、雷电模拟器

二、抓包分析,本次目标 dPassword  就是它了


三、Jeb分析

1、=========================================================

public static ClientRecvObject a(Context arg11,  此处交叉引用即可

2、=========================================================

3、=========================================================

4、=========================================================

5、=========================================================

四、Jeb动态调试

1、这个方法,按Q跳转到 smali 代码处,按Ctrl+B 打断点 也是 取消断点

2、Debugger ----> start 
选择模拟器    搜索包名    附加进程    进入即可


3、手机界面点击登录  密码 123456 


4、出现箭头 断到此处

5、VM/Locals  修改 Type  :   int 为 string


DESede 密码  V3  :tianyaiphone and android
登录       密码  V4  :123456

五、最终加密代码

package com.jeb;

import javax.crypto.Cipher;

import javax.crypto.spec.SecretKeySpec;

import java.security.Key;

public class tianya {

    public static void main(String[] args) {

        String arg3 = "tianyaiphone and android";

        String arg4 = "123456";

        String dPassword = encrypt(arg3, arg4);

        System.out.println("dPassword : " + dPassword);

        // dPassword : DEF410FD8D3D687C

    }

    public static String encrypt(String arg3, String arg4) {

        String v1 = null;

        if(arg4 != null && arg3 != null) {

            byte[] v0 = a1(arg3, arg4.getBytes());

            if(v0 != null) {

                v1 = a3(v0);

            }

        }

        return v1;

    }

    public static byte[] a1(String arg2, byte[] arg3) {

        return a2(arg2.getBytes(), arg3);

    }

    public static byte[] a2(byte[] arg6, byte[] arg7) {

        try {

            SecretKeySpec v1 = new SecretKeySpec(arg6, "DESede");

            Cipher v0 = Cipher.getInstance("DESede");

            v0.init(1, ((Key)v1));

            byte[] v5 = v0.doFinal(arg7);

            return v5;

        }

        catch(Exception v4) {

            v4.printStackTrace();

        }

        return null;

    }

    public static String a3(byte[] arg5) {

        String v0 = "";

        int v1;

        for(v1 = 0; v1 < arg5.length; ++v1) {

            String v2 = Integer.toHexString(arg5[v1] & 255);

            v0 = v2.length() == 1 ? v0 + "0" + v2 : v0 + v2;

        }

        return v0.toUpperCase();

    }

}

六、注意此处

动态调试之前的工程列表

Debugger ----> start  之后出现 小虫子哦

七、到此结束!!!网络上教程坑B贼多。

各种反编译、回编译、重新签名、开启debugger模式等等,都是TMD坑B!!!

且行且珍惜!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容