【破文标题】中华灯谜算法分析
【破文作者】missviola
【作者邮箱】
【作者主页】
【破解工具】DEDE OD PEID
【破解平台】Windows XP
【软件名称】中华灯谜
【软件大小】
【原版下载】
【保护方式】序列号
【软件简介】〖中华灯谜〗软件受到数十家刊物的特别撰文推荐。软件自带灯谜一万多条,种类齐全,数量浩瀚。软件支持灯谜的模糊搜索、各方式排序、随时添加、修改、删除等。使用简单,功能强大,软件支持批量导入功能,随时随地都可大批量地导入自己的数据库,数据库可支持无限扩充。本软件随时升级,灯谜随时添加。本软件还集成中国灯谜宝典,中华灯谜宝典包含常用的灯谜猜谜制谜资源,资料极其珍贵。本软件纯绿色、环保、可完全卸载。
【破解声明】只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
------------------------------------------------------------------------
【破解过程】好久没有破软件了,过年正好有空就拿个小软件练练手吧。安装完软件后用peid查壳,发现加了ASPack的壳,用peid的插件轻松搞定,重新查壳后发现为delphi编写。放到dede里生成map文件,用od载入软件,导入map文件,开始正式破解。
右键超级字串查找,查找ASCII,找到注册成功,谢谢你的注册!双击来到对应位置,往上拉到0054EE6C,F2下断点,F9运行程序,输入定单号和注册码,点击确认,程序断下,F8单步往下走。
0054EE6C >/. 55 PUSH EBP ; <-TForm1@BitBtn5Click
0054EE6D |. 8BEC MOV EBP,ESP
0054EE6F |. B9 16000000 MOV ECX,16
0054EE74 |> 6A 00 /PUSH 0
0054EE76 |. 6A 00 |PUSH 0
0054EE78 |. 49 |DEC ECX
0054EE79 |.^ 75 F9 JNZ SHORT zhdm_exe.0054EE74
0054EE7B |. 51 PUSH ECX
0054EE7C |. 53 PUSH EBX
0054EE7D |. 56 PUSH ESI
0054EE7E |. 8BD8 MOV EBX,EAX
0054EE80 |. 33C0 XOR EAX,EAX
0054EE82 |. 55 PUSH EBP
0054EE83 |. 68 BEF05400 PUSH <zhdm_exe.->System.@HandleFinally;>
0054EE88 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
0054EE8B |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
0054EE8E |. 68 80000000 PUSH 80 ; /BufSize = 80 (128.)
0054EE93 |. 8D85 7BFFFFFF LEA EAX,DWORD PTR SS:[EBP-85] ; |
0054EE99 |. 50 PUSH EAX ; |Buffer
0054EE9A >|. E8 4584EBFF CALL <JMP.&KERNEL32.GetSystemDirectoryA> ; ->?GetSystemDirectoryA()
0054EE9F |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
0054EEA2 |. 8D95 7BFFFFFF LEA EDX,DWORD PTR SS:[EBP-85]
0054EEA8 |. B9 81000000 MOV ECX,81
0054EEAD >|. E8 665DEBFF CALL zhdm_exe.00404C18 ; ->System.@LStrFromArray(String;String;PAnsiChar;Integer);<+>
0054EEB2 |. 8D95 74FFFFFF LEA EDX,DWORD PTR SS:[EBP-8C]
0054EEB8 >|. 8B83 C8030000 MOV EAX,DWORD PTR DS:[EBX+3C8] ; *FlatEdit2:TFlatEdit
0054EEBE >|. E8 C58CEFFF CALL zhdm_exe.00447B88 ; ->Controls.TControl.GetText(TControl):TCaption;
0054EEC3 |. 83BD 74FFFFFF>CMP DWORD PTR SS:[EBP-8C],0 ; 检验是否输入注册码
0054EECA |. 74 1A JE SHORT zhdm_exe.0054EEE6
0054EECC |. 8D95 70FFFFFF LEA EDX,DWORD PTR SS:[EBP-90]
0054EED2 >|. 8B83 C0030000 MOV EAX,DWORD PTR DS:[EBX+3C0] ; *FlatEdit1:TFlatEdit
0054EED8 >|. E8 AB8CEFFF CALL zhdm_exe.00447B88 ; ->Controls.TControl.GetText(TControl):TCaption;
0054EEDD |. 83BD 70FFFFFF>CMP DWORD PTR SS:[EBP-90],0 ; 检验是否输入了定单号
0054EEE4 |. 75 0F JNZ SHORT zhdm_exe.0054EEF5
0054EEE6 |> B8 D4F05400 MOV EAX,zhdm_exe.0054F0D4 ; 注册信息没有填写齐全
0054EEEB >|. E8 8C1EEFFF CALL zhdm_exe.00440D7C ; ->Dialogs.ShowMessage(AnsiString);
0054EEF0 |. E9 51010000 JMP zhdm_exe.0054F046
0054EEF5 |> 8D95 6CFFFFFF LEA EDX,DWORD PTR SS:[EBP-94]
0054EEFB >|. 8B83 C8030000 MOV EAX,DWORD PTR DS:[EBX+3C8] ; *FlatEdit2:TFlatEdit
0054EF01 >|. E8 828CEFFF CALL zhdm_exe.00447B88 ; ->Controls.TControl.GetText(TControl):TCaption;
0054EF06 |. 8B85 6CFFFFFF MOV EAX,DWORD PTR SS:[EBP-94]
0054EF0C |. 50 PUSH EAX
0054EF0D |. 8D95 64FFFFFF LEA EDX,DWORD PTR SS:[EBP-9C]
0054EF13 >|. 8B83 C0030000 MOV EAX,DWORD PTR DS:[EBX+3C0] ; *FlatEdit1:TFlatEdit
0054EF19 >|. E8 6A8CEFFF CALL zhdm_exe.00447B88 ; ->Controls.TControl.GetText(TControl):TCaption;
0054EF1E |. 8B85 64FFFFFF MOV EAX,DWORD PTR SS:[EBP-9C]
0054EF24 >|. E8 DBA6EBFF CALL zhdm_exe.00409604 ; ->SysUtils.StrToInt(AnsiString):Integer;定单号转为整数
0054EF29 |. B9 3A000000 MOV ECX,3A
0054EF2E |. 99 CDQ EDX清零
0054EF2F |. F7