最近在研究一些游戏的外挂原理,但是要卡密登录。穷哥们怎么付得起款呢?这不得爆破一哈
1.png (244.98 KB, 下载次数: 0)
下载附件
2022-3-31 11:03 上传
歪G的界面大概就是这样,32位卡密登录。
把APK反编译一下,看到有壳,360的。脱个壳先(像android端的歪G基本都用的是免费的加固产品,商用的买不起,要不就是自己写的一些比较简单的混淆和抽取,所以很好脱壳)。
脱壳推荐:frida-dexdump
脱完壳的dex比较多,用 grep -ril "MainActivity" * 在dex的目录下筛选含有MainActivity的dex。
然后jadx打开下dex。
2.png (84.5 KB, 下载次数: 0)
下载附件
2022-3-31 11:14 上传
卡密登录的代码就在上图,打开它的验证地址w.eydata.net用的是易游的验证服务。
爆破思路比较简单,在易游上注册一个开发者账号,然后把393A8582B24F5754替换成自己在易游上的,https改成http(它的https还要收费),然后自己创个程序开个免费的卡密,把自己的卡密验证参数格式和它的三个参数SingleCode/Ver/Mac顺序一致。
在登录界面输入自己创建的卡密,然后就是Hook UrlHttpUtil.post方法就行了
参考脚本:
function hook_java() {
Java.perform(function () {
var loginclass=Java.use("com.chaozh.iReaderFree.post.UrlHttpUtil");
loginclass.post.overload('java.lang.String', 'java.util.Map', 'com.chaozh.iReaderFree.post.CallBackUtil').implementation=function(str1,str2,str3){
//console.log(str1);
var url="http://w.eydata.net/你的调用码"
this.post(url,str2,str3);
}
});
}
3.png (137.08 KB, 下载次数: 0)
下载附件
2022-3-31 11:27 上传
顺利打开
然后第二款:
4.png (18.71 KB, 下载次数: 0)
下载附件
2022-3-31 11:28 上传
这个APK没有加壳,不用脱直接jadx打开就行了
像android端歪G基本都是90相似,应该是一套源码卖给不同的人然后小改拿出来卖,而且保留的端游歪挂的中文特色。所以基本搜下“卡密”就能找到登录入口,不用费力去查代码找接口
像这种就是
5.png (55.46 KB, 下载次数: 0)
下载附件
2022-3-31 11:36 上传
字符串加密了,打开解密方法看了一下就是一个Base64,不过也不用管。只需要看它的sendPost方法就行了
6.png (61.95 KB, 下载次数: 0)
下载附件
2022-3-31 11:38 上传
用的是okhttp3。然后抓了下包,看到验证过程要发两个包,
7.png (11.76 KB, 下载次数: 0)
下载附件
2022-3-31 11:40 上传
8.png (17.53 KB, 下载次数: 0)
下载附件
2022-3-31 11:40 上传
不管是不是两个包都要用到,反正都改成我们自己的验证就行了。
参考代码:
function hook_decode(){
Java.perform(function () {
var request_class=Java.use("okhttp3.FormBody$Builder");
request_class.add.implementation=function(str1,str2){
//console.log(str1,str2);
if(str1=="SingleCode"){
var res=this.add("Ver","你创建的程序版本");
return res;
}
if(str1=="Ver"){
var res=this.add("SingleCode","你的卡密");
return res;
}
if(str1=="UserName"){
var res=this.add("Ver","2.2");
return res;
}
if(str1=="UserPwd"){
var res=this.add("SingleCode","你的卡密");
return res;
}
if(str1=="Mac"){
var res=this.add("Mac","你的手机mac");
return res;
}
if(str1=="Type"){
var res=this.add("","");
return res;
}
var res=this.add(str1,str2);
return res;
}
var decode_class=Java.use("com.dragon.Green.utils.Http");
decode_class.sendPost.implementation=function(args1,args2,args3,args4){
//console.log(args1,args2,args3,args4);
var url="http://w.eydata.net/你的调用码";
var res=this.sendPost(url,args2,args3,args4);
//console.log(res);
return res;
}
});
}
搞定
9.png (23.83 KB, 下载次数: 0)
下载附件
2022-3-31 11:45 上传