随笔 - 130  文章 - 0  评论 - 12  阅读 - 6954

InstallShield 的命令行 ISCmdBld.exe 跟踪简记

翠竹心情 的破解挺好用的,只是命令行程序 ISCmdBld.exe 没有破解,这样就不能批处理打包了。

 

趁周末稍微研究了下,但是最后结论还没得出来,先简要记一笔,以后再补充。

 

 

ISCmdBld.exe

 

00419860  /$  6A FF         push    -1                               ;  main 入口

004198EB  |.  E8 D079FEFF   call    004012C0

 

00401376   .  E8 A54E0100   call    00416220                         ;  疑似加载 ISWiBuild.dll

004013C3   .  E8 981B0000   call    00402F60                         ;  这句执行后便会输出 build start at 字样

004013E9   .  FF92 88000000 call    dword ptr [edx+88]               ;  IsWiBuil.6ADE75D0

 

6ADE7637    E8 845C0000     call    6ADED2C0                              ;

 

6ADED366    8D4C24 10       lea     ecx, dword ptr [esp+10]          ; esp+10 处等下会存有输出参数
6ADED36A    66:C74424 10 00>mov     word ptr [esp+10], 0
6ADED371    8B06            mov     eax, dword ptr [esi]
6ADED373    8B90 DC000000   mov     edx, dword ptr [eax+DC]
6ADED379    51              push    ecx
6ADED37A    56              push    esi
6ADED37B    FFD2            call    edx                              ; 这里会进行一番验证
6ADED37D    894424 14       mov     dword ptr [esp+14], eax
6ADED381    8D4424 14       lea     eax, dword ptr [esp+14]
6ADED385    50              push    eax
6ADED386    E8 15DFFDFF     call    6ADCB2A0
6ADED38B    66:837C24 10 00 cmp     word ptr [esp+10], 0             ; 这里检查刚才的验证结果
6ADED391    75 48           jnz     short 6ADED3DB                   ; 关键跳转
6ADED393    8DB424 84010000 lea     esi, dword ptr [esp+184]         ; 这里下去就会抛异常了

 

 

刚才的

6ADED37B    FFD2            call    edx                              ; 这里会进行一番验证
在实际运行中会跳到 ISAppServices.67F109F0:

67F109F0    8B4424 04       mov     eax, dword ptr [esp+4]

...

67F10A22    68 187F1968     push    68197F18                         ; ASCII "IsProductLicenseValid"
67F10A27    50              push    eax
67F10A28    FF15 B4711868   call    dword ptr [<&KERNEL32.GetProcAdd>; kernel32.GetProcAddress
67F10A2E    85C0            test    eax, eax
67F10A30    74 1E           je      short 67F10A50
67F10A32    FFD0            call    eax

 

之后便找 ISUIServices.IsProducetLicenseValid

 

翠竹心情破解的主要文件就是 ISUIServices.dll

 

后来发现一点,把 ISUIServices.dll 换成原版,命令行编译能顺利进行,换成破解版的,就提示许可证过期啥啥。

 

 

一个暂时的解决办法是,把上面

6ADED391    75 48           jnz     short 6ADED3DB                   ; 关键跳转

改成

6ADED391    EB 48           jmp     short 6ADED3DB                   ; 关键跳转

就可以用了

 

文件中地址是 0002D390    (75 -> EB)

 

 

但是,后来的编译过程中,发现它又有几次调用了 ISUIServices.IsProducetLicenseValid,所以这个办法可不可靠还是未知数。

 

暂记,以后有空验证。

 

 

 

 

 

(原发表于 CSDN:https://blog.csdn.net/cnStreamlet/article/details/4125834)

posted on   溪流  阅读(68)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
< 2009年4月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 1 2
3 4 5 6 7 8 9

点击右上角即可分享
微信分享提示