好友
阅读权限35
听众
最后登录1970-1-1
|
连晋
发表于 2017-12-21 12:46
本帖最后由 凉生我怕怕 于 2017-12-21 14:21 编辑
哈哈 才发现论坛能用MarkDown了 开心开心
ok 言归正传 本教程是语音视频教程,文字我就少打了哈 看完视频的老铁 麻烦还是 回来点个赞 给个热心 感谢感谢 下载地址在最下面
老铁们 热心是免费的 不用白不用挖 点个热心呗
昨天逛论坛的时候看到一位老铁 @wlpkcheng 的帖子 点我达到
大概看了一下,感觉老铁写帖子的逻辑有点乱啊,看的我也有点迷糊.不过最终这位老铁用另一位大神写的一个计算器把注册码算出来了 所以就没去分析算法
我这里来为大家分析一下算法,顺带把apk逆向的基础也大概说说,我用的是AndroidKill,不熟悉的人也可以用安卓改之理哈 大概的 内容就是 带大家怎么看安卓代码里面的加密算法 然后写出注册机出来 . 本人也是菜鸟,大神勿喷,旨在于为更新手的人提供入门教程而已.
- 这个是吃鸡辅助软件的界面 图片都用的是@wlpkcheng 老铁的 哈哈 恕我太懒
我还是大概图文描述一下步骤吧 更具体的 建议看视频 可以在线看的
- 第三步 这里第三部的hex2bate是 第二部图中的 ' paramString = hex2byte(paramString); '这行代码调用的
接下来怎么写注册机 就得看视频了 老铁们
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
public class TestJm {
public static void main(String[] args) {
String str = "1111z111"; // 明文
String de = "";
// de = de("8060509d4a7237f98e7d86c8723144dc");
try {
de = en(str);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(de);
}
public static String de(String paramString) {
if (paramString == null) {
return (String) null;
}
SecretKeySpec localSecretKeySpec;
Cipher localCipher;
if ("Format2044153997".length() != 16) {
return (String) null;
}
try {
localSecretKeySpec = new SecretKeySpec("Format2044153997".getBytes("ASCII"), "AES");
localCipher = Cipher.getInstance("AES");
localCipher.init(Cipher.DECRYPT_MODE, localSecretKeySpec);
byte[] bytes = localCipher.doFinal(hex2byte(paramString));
paramString = new String(bytes);
return paramString;
} catch (Exception e) {
paramString = (String) null;
e.printStackTrace();
return paramString;
}
}
// 12345
public static byte[] hex2byte(String paramString) {
if (paramString == null) {
return (byte[]) null;
}
int j = paramString.length();
// 用户输入的秘钥 必须是2的倍数
if (j % 2 == 1) {
return (byte[]) null;
}
// 返回数组长度为 用户输入 秘钥长度的一半
byte[] arrayOfByte = new byte[j / 2];
int i = 0;
for (; ; ) {
if (i == j / 2) {
return arrayOfByte;
}
arrayOfByte[i] = ((byte) Integer.parseInt(
// 第一次是取下标 01 的值
// 第二个是取 23 的值
paramString.substring(
//开始处的索引(包括)。
i * 2,
//结束处的索引(不包括)。
i * 2 + 2
)
, 16));
i += 1;
}
}
public static String en(String paramString)
throws Exception {
if ("Format2044153997" == null) {
return (String) null;
}
if ("Format2044153997".length() != 16) {
return (String) null;
}
SecretKeySpec localSecretKeySpec = new SecretKeySpec("Format2044153997".getBytes("ASCII"), "AES");
Cipher localCipher = Cipher.getInstance("AES");
localCipher.init(1, localSecretKeySpec);
return bytes2HexString(localCipher.doFinal(paramString.getBytes())).toLowerCase();
}
public static String bytes2HexString(byte[] b) {
StringBuilder ret = new StringBuilder();
for (byte aB : b) {
String hex = Integer.toHexString(aB & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex;
}
ret.append(hex.toUpperCase());
}
return ret.toString();
}
}
- 最后说几句
- 这个写安卓程序的人应该是很菜很菜很菜,可以说是菜绝了.... 因为我是搞java的,看了他写的代码 直接看不下去了
- 视频里面我有一个坏习惯 喜欢爆粗口,录制完了才发现,在这里提前给大家道个歉哈 sorry 千万别学我
破解以后的效果图
视频教程下载链接
12点发布的帖子 下午2点就有老铁 做了详细的 图文教程了 大家电这里可以 看 哈 点我打开 |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|