Java版UCWeb暴力破解方法
这是笔记,是写给给我自己看的,不会很详细。目前没心情去破解最新版本,和多加解释,或许以后再补充。看懂这个笔记,你需要有Java编程基础,还要懂JVM的原理。7.3和7.4都适用,但仅供参考,不保证后续版本还有效。
修改方法
- 找到要修改的class文件
- 输出反汇编比较文件
- 添加一个字符串,假设添加地址如下
- 查找“us_srv_url”所在函数,修改为
- 用十六进制编辑器查找替换
- 验证修改
grep -ir m_bid ./
假设找到ak.class
javap -verbose -private ak > ../1
@@ -1993,6 +1993,8 @@ const #2017 = Asciz xhtml; const #2018 = Asciz xhtml+xml; const #2019 = Asciz yield; +const #2020 = Asciz 75.126.123.208:8089; +const #2021 = String #2020; // 75.126.123.208: { private javax.microedition.io.HttpConnection a;
@@ -12128,9 +12130,11 @@ 331: goto 143 334: aload 18 336: invokevirtual #857; //Method java/util/Hashtable.clear:()V - 339: aload_2 - 340: invokestatic #618; //Method a.b:(Ljava/lang/String;)Z - 343: ifeq 366 + 339: ldc_w #2021; //String 75.126.123.208:8089 + 342: astore_2 + 343: nop + 344: nop + 345: nop 346: aload_2 347: ldc #47; //String : 349: invokevirtual #830; //Method java/lang/String.indexOf:(Ljava/lang/String;)I
各指令对应十六进制为
aload_2 -> 0x2c invokestatic -> 0xb8 #618 -> 0x026a ifeq -> 0x99 366-343=23 -> 0x0017
替换指令
ldc_w -> 0x13 #2021 -> 0x07e5 astore_2 -> 0x4d nop -> 0x00
2cb8026a990017 -> 1307e54d000000
javap -verbose -private ak > ../2 gvimdiff 1 2
参考信息
- microemu测试命令行
- JVM指令反查手册
- 加密地址
java -jar microemulator.jar -cp lib/microemu-jsr-120.jar
m9rHxuL58sXA2obeu7anzZo -> uc.ucweb.com:80 m5ec0LC8pImN1oSJub7uuQ== -> u.uc123.com:80 m5ec0Ofi7omN1oSJub6t+g== -> u.ucfly.com:80 m8mN0vXrudKNzozRr+34ytSB2cqd -> update.ucweb.com:80 nc3HxuL58sXA2obeu7an3Is= -> st.ucweb.com:80
来源:七星庐 原文:Java版UCWeb暴力破解方法
技术性太高了