申请会员ID:紫羽幻天【未报到,已注销】
申 请 I D:紫羽幻天2、个人邮箱:894302300@qq.com
3、会点小程序逆向,libcocos2djsc和il2cpp的简单修改
问题:程序存档被加密,如何解密存档?
工具:ida7.0,ida7.7绿色版,frida12.8.4
https://imgse.com/i/xSloO1
分析过程:
文件显示很像base64加密,用base64直接解密显示乱码,所以猜测在base64之前有过别的运算。
打开ida,待加载完成后,加载ida_with_struct.py,选择script.json和il2cpp.h以使代码易读
搜索base64的相关函数
https://s1.ax1x.com/2022/09/16/xSlHw6.png
根据经验,像这种3个base64_xxx的就是base64函数,挨个点开看,发现第二个只有一个引用,是System_String_o *__cdecl EncryptDecipherTool__Encrypt_5036616,
https://s1.ax1x.com/2022/09/16/xS3lDI.png
在他的运算下有类System_Security_Cryptography_RijndaelManaged_o,由此判断,其为aes加密(经验,RijndaelManaged貌似是专用的加密库)
https://s1.ax1x.com/2022/09/16/xS3U2Q.png
接下来就是用frida hook下该地址,打印出它的key值
因为我们无法判断什么时候程序加载il2cpp,所有要提前hook dlopen,在加载了il2cpp后再执行脚本
function hook_dlopen(){
var func=Module.findExportByName(null,"dlopen");
var find = false;
console.log('[+] dlopen '+ func.toString())
Interceptor.attach(func, {
onEnter: function (args) {
find = false;
this.so_path =Memory.readCString(args)
if (this.so_path.indexOf("libil2cpp.so") >= 0){
find = true;
console.log(this.so_path)
}
},
onLeave: function (retval) {
if(find){//find为true时加载attach_matched脚本
attach_matched(this.so_path)
}
}
});
}
il2cpp加载后,执行脚本
function attach_gold(so_path){
var func = get_func_by_offset("libil2cpp.so",0x4cda48)
console.log('[+] hook '+func.toString())
Interceptor.attach(func, {
onEnter: function (args) {
console.log('**********************')
var hookx=0;
if(hookx==0){
console.log('arg0',args)
console.log('arg1',args)
console.log(print_dump(args,50))
console.log(Memory.readUtf16String(args.add(0x0c)))
//add(0x0c)是在地址的指针基础上添加0x0c的偏移,从数据结构里面看
//readUtf16String是so层读取utf16字节的函数,读取utf8的是readUtf8String
console.log(Memory.readUtf16String(args.add(0x0c)))
}else{
console.log("find",JSON.stringify(this.context))
console.log(print_dump(this.context.r1,1000))
}
},
onLeave: function (retval) {
console.log(Memory.readUtf16String(retval))
}
});
}
hook后得到arg的值是‘xxxxxx857fe56dcb0a3004eed8a2715d’
因为入参里只有未加密字符串和key,猜测用的是aes的ecb模式,找个在线网站,正确解密
I D:紫羽幻天
邮箱:894302300@qq.com
申请通过,欢迎光临吾爱破解论坛,期待吾爱破解有你更加精彩,ID和密码自己通过邮件密码找回功能修改,请即时登陆并修改密码!
登陆后请在一周内在此帖报道,否则将删除ID信息。 一直未报到,已注销。 Hmily 发表于 2022-9-29 10:39
一直未报到,已注销。
你好,这个报道是在这个贴子下面回复吗。我登陆了,过了两天账户没了。可以恢复吗 游客 36.59.100.x 发表于 2022-10-2 15:03
你好,这个报道是在这个贴子下面回复吗。我登陆了,过了两天账户没了。可以恢复吗
你是登录了,并且我还发短消息通知你来报道,告诉你再不报道就要被注销了,你也没有来报道,自己等下次开放注册再来注册吧。 你是发的站内信吗?还是邮箱。可能没看到吧。那我重新发个帖子申请可以不 游客 36.59.100.x 发表于 2022-10-5 21:57
你是发的站内信吗?还是邮箱。可能没看到吧。那我重新发个帖子申请可以不
发的站内信,不过不重要了,申请规则,和这个帖子我回复内容都明确写了,这个渠道只有一次申请机会,你等开放注册自己来注册吧。
页:
[1]