CHM电子书反向编译器是一款专门用来反编译CHM电子书源文件的工具软件,可以迅速地释放包括在CHM电子书里面的全部源文件(包括网页、文本、图片、CHM、ZIP、EXE等全部源文件),并且完美地恢复源文件的全部目录结构及文件名,以便帮助用户得到源文件进行资料恢复或二次编辑。提供多种反编译方式供用户选择,您不妨下载试试^_^
PEID查壳,程序加了ASPack 2.12 -> Alexey Solodovnikov壳,不过很好脱壳,用PEID的通用脱壳插件即可,脱完壳再查一下为Borland Delphi 6.0 - 7.0。
注册时输入用户名和序列号,并不会马上检查,而是将用户名注册码分别写入注册表HKEY_CURRENT_USER\Software\ChmDecompiler中的RegUser和RegNo键。
据此在程序中搜索字符串“RegUser”,找到两处,一处是写入,另一处就是软件启动时校验注册码了。关键函数很好找,就是sub_4A2400
CODE:004D2CCB call @TRegistry@OpenKey ; TRegistry::OpenKey
CODE:004D2CD0 lea ecx, [ebp-4]
CODE:004D2CD3 mov edx, offset aReguser_0 ; "RegUser"
CODE:004D2CD8 mov eax, ebx
CODE:004D2CDA call @TRegistry@ReadString ; TRegistry::ReadString
CODE:004D2CDF mov edx, [ebp-4]
CODE:004D2CE2 mov eax, offset dword_4D91EC
CODE:004D2CE7 call @@LStrAsg ; __linkproc__ LStrAsg
CODE:004D2CEC lea ecx, [ebp-8]
CODE:004D2CEF mov edx, offset aRegno_0 ; "RegNo"
CODE:004D2CF4 mov eax, ebx
CODE:004D2CF6 call @TRegistry@ReadString ; TRegistry::ReadString
CODE:004D2CFB mov eax, [ebp-8]
CODE:004D2CFE push eax
CODE:004D2CFF lea ecx, [ebp-0Ch]
CODE:004D2D02 mov edx, offset aChmdecompilerc ; "chmdecompilerChina"
CODE:004D2D07 mov eax, ds:dword_4D91EC
CODE:004D2D0C call sub_4A2400 ;关键函数
CODE:004D2D11 mov edx, [ebp-0Ch]
CODE:004D2D14 pop eax
CODE:004D2D15 call @@LStrCmp ; __linkproc__ LStrCmp
CODE:004D2D1A jnz short loc_4D2D23
CODE:004D2D1C mov ds:byte_4D91E8, 1