吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2709|回复: 6
收起左侧

[会员申请] 申请会员ID:紫羽幻天【未报到,已注销】

[复制链接]
吾爱游客  发表于 2022-9-16 22:24
申 请 I D:紫羽幻天
2、个人邮箱:894302300@qq.com
3、会点小程序逆向,libcocos2djsc和il2cpp的简单修改
问题:程序存档被加密,如何解密存档?
工具:IDA7.0,ida7.7绿色版,frida12.8.4


分析过程:
文件显示很像base64加密,用base64直接解密显示乱码,所以猜测在base64之前有过别的运算。
打开ida,待加载完成后,加载ida_with_struct.py,选择script.json和il2cpp.h以使代码易读
搜索base64的相关函数
[img][/img]
根据经验,像这种3个base64_xxx的就是base64函数,挨个点开看,发现第二个只有一个引用,是System_String_o *__cdecl EncryptDecipherTool__Encrypt_5036616,
[img][/img]
在他的运算下有类System_Security_Cryptography_RijndaelManaged_o,由此判断,其为aes加密(经验,RijndaelManaged貌似是专用的加密库)
[img][/img]
接下来就是用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[0])
            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[0])
                console.log('arg1',args[1])
                console.log(print_dump(args[1],50))
                console.log(Memory.readUtf16String(args[0].add(0x0c)))
                //add(0x0c)是在地址的指针基础上添加0x0c的偏移,从数据结构里面看
                //readUtf16String是so层读取utf16字节的函数,读取utf8的是readUtf8String
                console.log(Memory.readUtf16String(args[1].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[1]的值是‘xxxxxx857fe56dcb0a3004eed8a2715d’
因为入参里只有未加密字符串和key,猜测用的是aes的ecb模式,找个在线网站,正确解密

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2022-9-21 16:05
I D:紫羽幻天
邮箱:894302300@qq.com

申请通过,欢迎光临吾爱破解论坛,期待吾爱破解有你更加精彩,ID和密码自己通过邮件密码找回功能修改,请即时登陆并修改密码!
登陆后请在一周内在此帖报道,否则将删除ID信息。
Hmily 发表于 2022-9-29 10:39
吾爱游客  发表于 2022-10-2 15:03
Hmily 发表于 2022-9-29 10:39
一直未报到,已注销。

你好,这个报道是在这个贴子下面回复吗。我登陆了,过了两天账户没了。可以恢复吗

点评

你是登录了,并且我还发短消息通知你来报道,告诉你再不报道就要被注销了,你也没有来报道,自己等下次开放注册再来注册吧。  详情 回复 发表于 2022-10-3 21:20
Hmily 发表于 2022-10-3 21:20
游客 36.59.100.x 发表于 2022-10-2 15:03
你好,这个报道是在这个贴子下面回复吗。我登陆了,过了两天账户没了。可以恢复吗

你是登录了,并且我还发短消息通知你来报道,告诉你再不报道就要被注销了,你也没有来报道,自己等下次开放注册再来注册吧。
吾爱游客  发表于 2022-10-5 21:57
你是发的站内信吗?还是邮箱。可能没看到吧。那我重新发个帖子申请可以不

点评

发的站内信,不过不重要了,申请规则,和这个帖子我回复内容都明确写了,这个渠道只有一次申请机会,你等开放注册自己来注册吧。  详情 回复 发表于 2022-10-8 11:14
Hmily 发表于 2022-10-8 11:14
游客 36.59.100.x 发表于 2022-10-5 21:57
你是发的站内信吗?还是邮箱。可能没看到吧。那我重新发个帖子申请可以不

发的站内信,不过不重要了,申请规则,和这个帖子我回复内容都明确写了,这个渠道只有一次申请机会,你等开放注册自己来注册吧。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 05:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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