@dbgcode
image.png (373.19 KB, 下载次数: 0)
下载附件
2023-12-21 09:25 上传
用解包软件打开看一下原始安装包。
另一个楼主曾说:上面破解步骤都是多余的
言外之意就是
image.png (57.93 KB, 下载次数: 0)
下载附件
2023-12-21 09:30 上传
这几个就是Delphi写的外壳程序而已
image.png (126.36 KB, 下载次数: 0)
下载附件
2023-12-21 09:31 上传
再用Everything搜一下,x64dbg打开依次看一眼。
立马得出结论 ,最后一个DLL里边有猫腻
image.png (272.05 KB, 下载次数: 0)
下载附件
2023-12-21 09:34 上传
真正的核心代码在这里!
[C++] 纯文本查看 复制代码180002129 __chkstk(0x1bd0)
180002138 void var_1be8
180002138 int64_t rax_1 = data_18001f0f0 ^ &var_1be8
180002143 bool cond:1 = true
180002143 bool cond:3 = true
180002146 void* const rsi = u"PDFPort"
18000214d void* const rdi = u"PDFPort"
180002154 int64_t i = 8
18000215c void* rbp = nullptr
18000215f while (i != 0)
18000215f int16_t temp0_1 = *rsi
18000215f int16_t temp1_1 = *rdi
18000215f cond:1 = temp0_1 == temp1_1
18000215f cond:3 = temp0_1 u>= temp1_1
18000215f rsi = rsi + 2
18000215f rdi = rdi + 2
18000215f i = i - 1
18000215f if (temp0_1 != temp1_1)
18000215f break
180002162 uint32_t rbx = 0
180002165 if (not(cond:1))
18000216c void var_1bb8
18000216c sub_1800055ec(&var_1bb8)
18000217b void var_1bb0
18000217b sub_1800052bc(&var_1bb0, &var_1bb8)
180002195 void var_1b88
180002195 _mbccpy_s(&var_1b88, 0x1e, u"%Y%m%d", &var_1bb0)
18000219a void* const rsi_1 = u"20070415"
1800021a1 void* rdi_1 = &var_1b88
1800021a6 int64_t i_1 = 9
1800021ab while (i_1 != 0)
1800021ab int16_t temp2_1 = *rsi_1
1800021ab int16_t temp3_1 = *rdi_1
1800021ab cond:3 = temp2_1 u>= temp3_1
1800021ab rsi_1 = rsi_1 + 2
1800021ab rdi_1 = rdi_1 + 2
1800021ab i_1 = i_1 - 1
1800021ab if (temp2_1 != temp3_1)
1800021ab break
1800021ae if (not(cond:3))
1800021c8 sub_180001000(u"MakePDF", u"This driver has expired.", u"20070415", 0)
1800021d8 sub_180001db0(u"This driver has expired.", 0x40)
1800021dd goto label_1800024ba
1800021e2 void* rax_2 = sub_180003e30()
1800021f1 rbp = rax_2
1800021fa void* const rdi_3
1800021fa void lpFileName
1800021fa if (rax_2 != 0)
180002214 sub_180001000(u"MakePDF", u"Work Area", rax_2, 0)
180002223 void* rax_3 = sub_1800040f0(u"GUITimeout", arg2)
18000222e if (rax_3 == 0)
180002244 sub_180001000(u"MakePDF", u"Unable to read GUITimeout settin…", nullptr, 0)
18000224e else
18000224e uint32_t rax_4 = sub_180005804(rax_3)
18000226a rbx = rax_4
18000226c uint32_t var_1bc8_1 = rax_4
180002270 void var_d78
180002270 swprintf(&var_d78, 0xc8, u"GUITimeout setting was set to '%…", rax_3)
180002278 j_free(rax_3)
180002282 if (rbx s
这段代码的大致意思就是。。。生成pdf(写入过程),一旦驱动过期。。
打印的时候 根据 Postscript file 输出红色水印。
image.png (87.12 KB, 下载次数: 0)
下载附件
2023-12-21 09:39 上传
image.png (28.41 KB, 下载次数: 0)
下载附件
2023-12-21 09:40 上传
所以根据伪代码的逻辑,来修改代码逻辑,补丁过后别忘记保存
image.png (364.53 KB, 下载次数: 0)
下载附件
2023-12-21 09:47 上传
最终再来欣赏下修改的效果。
PS最后的Patch配图选错了,该是反转或总是成立(操作太快,手滑了),懒的改凑合看吧。