第一关:文件校验
由于不清楚软件到底是什么行为能够注册成功
所以我们只能先自己寻找字符串挖掘线索
通过交叉引用,找寻到了成功提示调用的位置
从而发现了一处关键的校验:
result[193] != 0xC34 && result[194] != 0x230D && result[196] == 0xF94
分析 0xC34
查找赋值写入的位置
发现两处写入的位置实则为一个函数体内
ASSIGN
ASSIGN()
是 Delphi 中的AssignFile
或Assign
函数,对应:
AssignFile(F, '路径字符串');
v10
是 Delphi 的一个TextFile
或File of ...
类型变量(或者文件记录结构体指针)ASSIGN(v10, &str_X__ajj_126_c0m_[1]);
是在将文件变量v10
绑定到一个路径字符串上,路径是"F:\ajj.126.c0m\j\o\j\o\ok.txt"
RESETTEXT
ASSIGN(...)
→ 把文件变量v10
关联到一个磁盘文件路径。RESETTEXT(...)
→ 把这个文件以文本读取模式打开,准备从里面读取数据。- 常常使用
IOResult
检查是否打开成功
IOResult
如果操作成功,返回值为 0
Delphi 中 IOResult()
返回 0 表示操作成功,非 0 表示错误码。
分析二次校验
读取 v10
文件里面的字符串
其中 v10
里面是"F:\ajj.126.c0m\j\o\j\o\ok.txt"
也就是读取这个 txt 文件
的字符串
最终和str__ajj_____CKme___
作比较
通过分析得知,文件内容为
ajj写的CKme真烂!
+文件末尾 0xFF
,0xFF
破解绕过二次校验
思路很简单,在对应的文件夹新建文件,然后写入字符串即可
- 写入
0xFF
可以用winhex
工具 - 注意
txt 文件
需要保存为ANSI
格式
破解结果
界面变化了,出现新的转机
没有回复内容