吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 38|回复: 2
上一主题 下一主题
收起左侧

[其他求助] 求助关于游戏血战上海滩通过反汇编相关代码对INI配置文件解密的问题

[复制链接]
跳转到指定楼层
楼主
烟99 发表于 2024-11-23 23:32 回帖奖励
200吾爱币
本帖最后由 烟99 于 2024-11-23 23:41 编辑



解开游戏的PCK文件后,并没有发现关于杀敌积分配置的文件,于是怀疑在游戏根目录下的那几个加密的INI文件里。




先讲我的想法:

把游戏主程序EXE拽入IDA里,搜到了很多“.ini”的字符串,然后每一个下方都call了sub_402A50这个函数,再往下就看到有不能打开这个文件的错误提醒,基本可以断定此函数与加载并解密INI文件有关










跳转到sub_402A50


按空格进入流程图模式



[Asm] 纯文本查看 复制代码
; int __stdcall sub_402A50(char ArgList)
sub_402A50 proc near

ArgList= byte ptr 4

push ebx
push ebp
push esi
push edi
mov edi, dword ptr [esp+10h+ArgList]
mov ebp, ecx
test edi, edi
jnz short loc_402A81

如上图所示,首先压入四种寄存器,然后从内存中取数据加载到edi寄存器。计算内存地址的方式是栈指针esp加上十六进制的10h(16字节)再加上ArgList所表示的偏移量(4字节),然后从这个计算得到的内存地址取出一个双字(32位,dword ptr表示)的数据放到edi寄存器中、将ecx寄存器的值移动到ebp寄存器中,测试检查,如果test指令的结果不为0则继续,否则报参数无效。


接着,执行下面的操作
[Asm] 纯文本查看 复制代码
mov     eax, [ebp+14h]
lea     esi, [ebp+14h]
push    4
push    edi
mov     ecx, esi
call    dword ptr [eax+14h]
test    al, al
jnz     short loc_402AC7

这里又看到了一个call,应该是INI解密操作,call到eax寄存器的值加上十六进制的14h,然后从这个地址取出一个双字(32位)的值作为函数的入口地址,并跳转到这个地址去执行函数,到了这里我就不会寻址了,求大佬指教。是不是要在ini加载时候call的地方下断点才能知道eax寄存器的值



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

沙发
tomcat9 发表于 2024-11-24 00:38
光看ini不一定准,得监控文件的读写动作

点评

现在追踪的基本上就是读取操作  详情 回复 发表于 2024-11-24 00:51
3#
 楼主| 烟99 发表于 2024-11-24 00:51 |楼主
tomcat9 发表于 2024-11-24 00:38
光看ini不一定准,得监控文件的读写动作

现在追踪的基本上就是读取操作
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

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

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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