InnoExtractor 捐赠机制
本帖最后由 lyiann 于 2021-6-19 09:14 编辑InnoExtractor 是什么软件,在这里不做介绍,论坛中有。
原作者发布的软件都是Free版的,只有通过捐赠才可能升级到Plus版。
网上到处都是所谓的完美破解版(本论坛也有),但其实都不是完美的,要将Free版完美升级到Plus,只有通过向作者捐赠6美元:lol,作者会通过邮箱发给你你一个捐赠码。
我们就来看看这个捐赠码的输入方式和校验机制。
1、捐赠界面会检测有无注册机在运行,有的话无法输入捐赠码:
005DD2BB mov eax,;^gHasKeyGen:Boolean
005DD2C0 cmp byte ptr ,0
005DD2C3> jnz 005DD2DB
005DD2C5 mov eax,5DD508;'havysoft products keygen'
005DD2CA call GetWinHandleByTitle
005DD2CF test eax,eax
005DD2D1> jbe 005DD2DB
005DD2D3 mov eax,;^gHasKeyGen:Boolean
005DD2D8 mov byte ptr ,1
005DD2DB mov eax,;^gHasKeyGen:Boolean
005DD2E0 cmp byte ptr ,1
005DD2E3> jz 005DD4D8; 有注册机在运行,则跳出
2、捐赠界面接收组合键Ctrl-Alt-Shift-I
捐赠界面如下:
005DD2E9 mov ax,;0x7 gvar_005DD53C; Ctrl-Alt-Shift组合键
005DD2EF cmp ax,word ptr
005DD2F3> jnz 005DD4D8;不是跳出
005DD2F9 mov eax,dword ptr
005DD2FC mov ax,word ptr
005DD2FF cmp ax,49 ;I键的ASCII码
005DD303> jnz 005DD4D8;不是跳出
按组合键捐赠界面变成这样,可以输入捐赠码了:
3、捐赠码的组成
00565C44 mov edx,dword ptr
00565C47 mov eax,565D2C;'-'
00565C4C call ReversePos
00565C51 mov dword ptr ,eax
00565C54 cmp dword ptr ,0
00565C58> jle 00565CEC
捐赠码分两个部分,中间用“-”分隔,第一部分是名称,第二部分是由名称产生的校验码。
4、名称的有效性
.text:005659B4 C6 45 FB 00 mov , 0
.text:005659B8 8D 55 F4 lea edx,
.text:005659BB 8B 45 FC mov eax,
.text:005659BE E8 0D 87 EB FF call AnsiLowerCase
.text:005659C3 8B 45 F4 mov eax,
.text:005659C6 BA 98 5B 56 00 mov edx, offset aUnregisteredus ; "unregistereduser"
.text:005659CB E8 54 24 EA FF call UStrEqual
.text:005659D0 75 04 jnz short loc_5659D6
.text:005659D2 C6 45 FB 01 mov , 1
.text:005659D6
.text:005659D6 loc_5659D6:
.text:005659D6 80 7D FB 01 cmp , 1
.text:005659DA 0F 84 7E 01 00 00 jz Exit
如果名称是“unregistereduser”,则不可接收,废话!{:1_918:}
.text:00565A01 C7 45 F0 01 00 00+ mov , 1
.text:00565A08
.text:00565A08 loc_565A08:
.text:00565A08 8B 45 F4 mov eax,
.text:00565A0B 8B 55 F0 mov edx,
.text:00565A0E 66 8B 44 50 FE mov ax,
.text:00565A13 66 89 45 EE mov , ax
.text:00565A17 B8 BC 5B 56 00 mov eax, offset dword_565BBC
.text:00565A1C 89 45 D8 mov , eax
.text:00565A1F 8B 45 D8 mov eax,
.text:00565A22 66 8B 55 EE mov dx,
.text:00565A26 66 81 FA FF 00 cmp dx, 0FFh
.text:00565A2B 77 09 ja short loc_565A36
.text:00565A2D 81 E2 FF 00 00 00 and edx, 0FFh
.text:00565A33 0F A3 10 bt , edx
.text:00565A36
.text:00565A36 loc_565A36:
.text:00565A36 0F 92 C0 setb al
.text:00565A39 88 45 D7 mov , al
.text:00565A3C 80 7D D7 00 cmp , 0
.text:00565A40 75 09 jnz short loc_565A4B
.text:00565A42 C6 45 FB 01 mov , 1
.text:00565A46 E9 13 01 00 00 jmp Exit
.text:00565A4B ; ---------------------------------------------------------------------------
.text:00565A4B
.text:00565A4B loc_565A4B:
.text:00565A4B FF 45 F0 inc
.text:00565A4E FF 4D E0 dec
.text:00565A51 75 B5 jnz short loc_565A08
这是个For循环,检测名称是否都是由字母组成,有非字母则视为无效!
.text:00565A84 C7 45 F0 01 00 00+ mov , 1
.text:00565A8B
.text:00565A8B loc_565A8B:
.text:00565A8B 8B 45 F4 mov eax,
.text:00565A8E 8B 55 F0 mov edx,
.text:00565A91 66 8B 44 50 FE mov ax,
.text:00565A96 66 89 45 EE mov , ax
.text:00565A9A 66 8B 45 EE mov ax,
.text:00565A9E 66 89 45 CE mov , ax
.text:00565AA2 66 8B 45 EE mov ax,
.text:00565AA6 83 C0 9F add eax, 0FFFFFF9Fh
.text:00565AA9 66 83 E8 1A sub ax, 1Ah
.text:00565AAD 73 0C jnb short loc_565ABB
.text:00565AAF 66 8B 45 EE mov ax,
.text:00565AB3 66 25 DF FF and ax, 0FFDFh
.text:00565AB7 66 89 45 CE mov , ax
.text:00565ABB
.text:00565ABB loc_565ABB:
.text:00565ABB 66 8B 45 EE mov ax,
.text:00565ABF 66 3B 45 CE cmp ax,
.text:00565AC3 75 03 jnz short loc_565AC8
.text:00565AC5 FF 45 E8 inc ;大写字母计数
.text:00565AC8
.text:00565AC8 loc_565AC8:
.text:00565AC8 FF 45 F0 inc
.text:00565ACB FF 4D E0 dec
.text:00565ACE 75 BB jnz short loc_565A8B
.text:00565AD0 loc_565AD0:
.text:00565AD0 83 7D E8 02 cmp , 2;小于2个无效
.text:00565AD4 7C 06 jl short loc_565ADC
.text:00565AD6 83 7D E8 04 cmp , 4;大于4个无效
.text:00565ADA 7E 06 jle short loc_565AE2
.text:00565ADC
.text:00565ADC loc_565ADC:
.text:00565ADC C6 45 FB 01 mov , 1
.text:00565AE0 EB 7C jmp short Exit
这又是个for循环,检测大写字母的个数,大写字母在2-4个范围内是有效的。
.text:00565B08 C7 45 F0 01 00 00+ mov , 1
.text:00565B0F
.text:00565B0F loc_565B0F:
.text:00565B0F 8B 45 F4 mov eax,
.text:00565B12 8B 55 F0 mov edx,
.text:00565B15 66 8B 44 50 FE mov ax,
.text:00565B1A 66 89 45 EE mov , ax
.text:00565B1E B8 DC 5B 56 00 mov eax, offset dword_565BDC
.text:00565B23 89 45 C4 mov , eax
.text:00565B26 8B 45 C4 mov eax,
.text:00565B29 66 8B 55 EE mov dx,
.text:00565B2D 66 81 FA FF 00 cmp dx, 0FFh
.text:00565B32 77 09 ja short loc_565B3D
.text:00565B34 81 E2 FF 00 00 00 and edx, 0FFh
.text:00565B3A 0F A3 10 bt , edx
.text:00565B3D
.text:00565B3D loc_565B3D:
.text:00565B3D 0F 92 C0 setb al
.text:00565B40 88 45 C3 mov , al
.text:00565B43 80 7D C3 00 cmp , 0
.text:00565B47 74 03 jz short loc_565B4C
.text:00565B49 FF 45 E4 inc ;元音字母计数
.text:00565B4C
.text:00565B4C loc_565B4C:
.text:00565B4C FF 45 F0 inc
.text:00565B4F FF 4D E0 dec
.text:00565B52 75 BB jnz short loc_565B0F
.text:00565B54
.text:00565B54 loc_565B54:
.text:00565B54 83 7D E4 02 cmp , 2;小于2个无效
.text:00565B58 7D 04 jge short Exit
.text:00565B5A C6 45 FB 01 mov , 1
.text:00565B5E
.text:00565B5E Exit:
这还是个for循环,检测元音字母的个数,必须2个以上有效。
结论:名称必须全部由字母组成,并且含2-4个大写字母和不少于2个元音字母。
5、校验码
校验码由名称通过计算CRC32得到,作者在程序中有个Bug,是由Ansi字符程序转到Unicode字符程序时留下的。
目前程序是Unicode字符的,名称的每个字母由两个字节组成,但在计算时又按Ansi方式进行,这样只计算了名称的一半,每个字母多出的字节0也进行了计算。
因此我们只能讲错就错!{:1_925:}
计算得到的CRC32码,转换成8位十六进制值,就是校验码了。
6、提供一枚捐赠码玩玩
PoJie-022ED495
在上个界面输入这个捐赠码,出现如下感谢信息:
7、好了,到此,Free版真正完美升级到了Plus版!
8、为好事者准备的礼物!
有好事者将原作者的软件进行汉化破解,再包装。
现在破解不必了,还是原汁原味用原作者的东西吧!
进行汉化包装,执行以下注册表代码,Free版就是Plus版了!
Windows Registry Editor Version 5.00
"IE1942781259513"="PoJie-022ED495"
这是我做的捐赠码产生器,没啥必要发布了,除非原作者将PoJie名称也加入非法名称!:lol:lol
强调:
组合键必须在捐赠界面输入才起作用!
按组合键方式:先按住Ctrl、Alt和Shift三个键,再按I键。
组合按键是:Ctrl-Alt-Shift-I
本帖最后由 Juno_Jr 于 2022-11-25 19:52 编辑
快捷键:Ctrl+Alt+Shift+I
更新:6.0
快捷键:Ctrl+Shift+Y
注册码:PoJie-2A9AF173
CrackeR-5CD27B64 Juno_Jr 发表于 2021-6-16 16:40
快捷键Ctrl-Alt-Shift-I
是的是的,我按键一直这样按的,但写的时候写成T了 本帖最后由 腊肉白菜 于 2021-6-16 11:33 编辑
哪位小伙伴能告知一下,是否有其他方法输入捐赠码,或如何调出捐赠码界面。
安装使用官方v5.4.5.202版本,在捐赠界面按组合键Ctrl-Alt-Shift-T,死活出不来捐赠码输入界面。已确认没开注册机。
———————————————————————————————————————————
压缩包见附件。使用方法如下:
1、将压缩包解压;
2、将解压出的“Chinese.lng”文件,放进软件安装目录下的“Languages”文件夹下
3、重启软件;
4、在软件界面上方选择“Options”-“Languages”-“Chinese Simplified(简体中文)”即可。 腊肉白菜 发表于 2021-6-16 12:18
确认了几次,的确是在这个界面按的Ctrl-Alt-Shift-T,不知道为啥,就是出不来
把火绒、输入法之类的都关 ...
不好意思,写错了,组合键是
Ctrl-Alt-Shift-I 福利啊占个楼打破零回复 腊肉白菜 发表于 2021-6-16 11:17
哪位小伙伴能告知一下,是否有其他方法输入捐赠码,或如何调出捐赠码界面。
安装使用官方v5.4.5.202版本, ...
直接执行那个注册表代码,或按代码直接加入注册表:lol 本帖最后由 lyiann 于 2021-6-16 12:03 编辑
腊肉白菜 发表于 2021-6-16 11:17
哪位小伙伴能告知一下,是否有其他方法输入捐赠码,或如何调出捐赠码界面。
安装使用官方v5.4.5.202版本, ...
组合键一定要在捐赠界面输入
lyiann 发表于 2021-6-16 11:53
直接执行那个注册表代码,或按代码直接加入注册表
bat执行了没效果,注册表没有ZHS路径,添加了一个也不行
:sleepy:尴尬 lyiann 发表于 2021-6-16 12:01
组合键一定要在捐赠界面输入
确认了几次,的确是在这个界面按的Ctrl-Alt-Shift-T,不知道为啥,就是出不来
把火绒、输入法之类的都关了,也不像是热键冲突 谢谢分享,我的按热键也没有出来输入界面。直接用注册表搞定。 本帖最后由 lyiann 于 2021-6-16 13:42 编辑
腊肉白菜 发表于 2021-6-16 12:12
bat执行了没效果,注册表没有ZHS路径,添加了一个也不行
尴尬
保存为“.reg”文件,而不是“.bat”文件
注册表不是添加一个ZHS路径,还要添加相关的项和值 学习了,以前分析的时候确实找了很长时间怎么输入验证码,最后从限制下手了。