开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 13041|回复: 3
收起左侧

[Android逆向] 安卓的包转换成JAVA

[复制链接]
结帖率:95% (78/82)
发表于 2021-6-4 22:59:46 | 显示全部楼层 |阅读模式   江苏省苏州市
package com.example.myapplication;

import android.text.TextUtils;
import android.util.Base64;

import com.example.myapplication.cm;
import com.example.myapplication.ByteTransformUtils;
import java.util.Random;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
public class AesCrypto {
    /* renamed from: a  reason: collision with root package name */
    public static final String f4604a = "df0b".toLowerCase();
    public static final byte[] b = Base64.decode("VlEc5qsEDXWChrWJ0AzMXQ==", 2);
    /* renamed from: c  reason: collision with root package name */
    public static final byte[] f4605c = Base64.decode("MC8Lpxk9zqyuRPXMdO8rJQ==", 2);
    public static final byte[] d = a();
    private static byte[] b(byte[] bArr) throws Exception {
        return bArr;
    }
    public static String a(String str, byte[] bArr) throws Exception {
        return a(a(b(b), str.getBytes(), bArr));
    }
    public static String a(String str) throws Exception {
        byte[] a2 = a();
        String a3 = a(str, a2);
        String a4 = a(a2);
        int parseInt = Integer.parseInt(f4604a.substring(0, 1), 16);
        return f4604a + a3.substring(0, parseInt) + a4 + a3.substring(parseInt);
    }
    public static String b(String str) throws Exception {
        return b(str, f4604a, b);
    }
    public static String c(String str) throws Exception {
        return a(str, f4604a, b);
    }
    public static String d(String str) throws Exception {
        return b(str, "4545", f4605c);
    }
    public static String e(String str) throws Exception {
        return a(str, "4545", f4605c);
    }
    private static String a(String str, String str2, byte[] bArr) throws Exception {
        if (TextUtils.isEmpty(str)) {
            return "";
        }
        byte[] decode = Base64.decode(str, 2);
        String lowerCase = ByteTransformUtils.a(decode, 0, decode.length).toLowerCase();
        if (lowerCase.startsWith(str2)) {
            lowerCase = lowerCase.substring(str2.length());
        }
        int parseInt = Integer.parseInt(str2.substring(0, 1), 16);
        int i = parseInt + 32;
        String substring = lowerCase.substring(parseInt, i);
        return new String(b(b(bArr), f(lowerCase.substring(0, parseInt) + lowerCase.substring(i)), ByteTransformUtils.a(substring)));
    }
    private static String b(String str, String str2, byte[] bArr) throws Exception {
        byte[] a2 = a();
        String a3 = a(a(b(bArr), str.getBytes(), a2));
        String a4 = a(a2);
        int parseInt = Integer.parseInt(str2.substring(0, 1), 16);
        return Base64.encodeToString(ByteTransformUtils.a(str2 + a3.substring(0, parseInt) + a4 + a3.substring(parseInt)), 2);
    }
    private static byte[] a(byte[] bArr, byte[] bArr2, byte[] bArr3) throws Exception {
        SecretKeySpec secretKeySpec = new SecretKeySpec(bArr, "AES");
        Cipher instance = Cipher.getInstance("AES/CBC/PKCS7Padding");
        instance.init(1, secretKeySpec, new IvParameterSpec(bArr3));
        return instance.doFinal(bArr2);
    }
    private static byte[] b(byte[] bArr, byte[] bArr2, byte[] bArr3) throws Exception {
        SecretKeySpec secretKeySpec = new SecretKeySpec(bArr, "AES");
        Cipher instance = Cipher.getInstance("AES/CBC/PKCS7Padding");
        instance.init(2, secretKeySpec, new IvParameterSpec(bArr3));
        return instance.doFinal(bArr2);
    }
    public static byte[] f(String str) {
        int length = str.length() / 2;
        byte[] bArr = new byte[length];
        for (int i = 0; i < length; i++) {
            int i2 = i * 2;
            bArr = Integer.valueOf(str.substring(i2, i2 + 2), 16).byteValue();
        }
        return bArr;
    }
    public static String a(byte[] bArr) {
        if (bArr == null) {
            return "";
        }
        StringBuffer stringBuffer = new StringBuffer(bArr.length * 2);
        for (byte b2 : bArr) {
            a(stringBuffer, b2);
        }
        return stringBuffer.toString();
    }
    private static void a(StringBuffer stringBuffer, byte b2) {
        stringBuffer.append("0123456789ABCDEF".charAt((b2 >> 4) & 15));
        stringBuffer.append("0123456789ABCDEF".charAt(b2 & cm.m));
    }
    private static byte[] a() {
        Random random = new Random();
        byte[] bArr = new byte[16];
        for (int i = 0; i < 16; i++) {
            bArr = (byte) (random.nextInt(256) - 128);
        }
        return bArr;
    }
}

import android.text.TextUtils;
import android.util.Base64;

这两个安卓的包,能翻译成JAVA的包吗,想做成一个工具类
结帖率:79% (11/14)

签到天数: 1 天

发表于 2021-6-5 09:58:43 | 显示全部楼层   上海市上海市
加我Q,可以搞
回复 支持 反对

使用道具 举报

结帖率:100% (7/7)

签到天数: 26 天

发表于 2021-6-5 09:49:57 | 显示全部楼层   河南省郑州市
回复 支持 反对

使用道具 举报

结帖率:100% (7/7)

签到天数: 26 天

发表于 2021-6-5 09:47:50 | 显示全部楼层   河南省郑州市
if (TextUtils.isEmpty(str)) {
        return "";
}
改成
if (str == null || str.length() <= 0) {
        return "";
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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