【破解作者】 小子贼野
【作者主页】 http://mayday.unpack.cn/
【使用工具】 OD
【破解平台】 Win9x/NT/2000/XP
【软件名称】 信息小管家
【下载地址】 http://www.onlinedown.net/soft/41319.htm
【软件简介】 信息小管家是一款集理财,资料记载,通讯录,客户记载的四合一信息管理软件.
不求功能最强大,但求最好用、实用。三九科技,品质生活。
1 个人理财:适合个人、家庭或企业理财,操作简单,且功能强大,是专为个人及家庭设置的理财软件。
收入支出中支持多种类型,且可以自由设置,方便您对各类费用分类汇总统计。
多种统计方式,使您对各种收入、支出更加明朗。
2 资料记载:一款极富个性,并且功能强大的工具,具有资料,信息,文件的分类,记录,查询的管理功能.
俗话说说好记性不如烂笔头!勤记载,到时候用到就可以及时查找。
3 通 讯 录:自定义无限级分类功能,强大的关键字查找功能,能在短时间查找到您要的联系人!
4 客户记载:简单实用的客户资料管理功能!
【加壳方式】 ASPack 2.12 -> Alexey Solodovnikov
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
那个MM说密码有东西管理了,其他的东西呢?总不能都用一个记事本来记录吧?唉,都是MM惹的祸
-------------------------------------------------------------------------------
既然人家开口了,我也没有办法拒绝,下面就是我的分析过程了:
--------------------------------------------------------------------------------
找关键字符串:
超级字串参考, 项目 546
地址=004E0C31
反汇编=PUSH UnPacK.004E0DD4
文本字串=注册码错误!请重新输入!
找到为:
--------------------------------------------------------------------------------
004E09F9 |. 55 PUSH EBP ; 在此下断
004E09FA |. 68 EF0C4E00 PUSH UnPacK.004E0CEF
004E09FF |. 64:FF30 PUSH DWORD PTR FS:[EAX]
004E0A02 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
004E0A05 |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
004E0A08 |. 8B83 14030000 MOV EAX,DWORD PTR DS:[EBX+314]
004E0A0E |. E8 F9E5F6FF CALL UnPacK.0044F00C
004E0A13 |. 837D FC 00 CMP DWORD PTR SS:[EBP-4],0
004E0A17 |. 75 2C JNZ SHORT UnPacK.004E0A45 ; 比较有没有填东西,不填就Game Over
004E0A19 |. 6A 00 PUSH 0
004E0A1B |. 68 000D4E00 PUSH UnPacK.004E0D00
004E0A20 |. 68 0C0D4E00 PUSH UnPacK.004E0D0C
004E0A25 |. 8BC3 MOV EAX,EBX
004E0A27 |. E8 D04DF7FF CALL UnPacK.004557FC
004E0A2C |. 50 PUSH EAX ; |hOwner
004E0A2D |. E8 BA74F2FF CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
004E0A32 |. 8B83 14030000 MOV EAX,DWORD PTR DS:[EBX+314]
004E0A38 |. 8B10 MOV EDX,DWORD PTR DS:[EAX]
004E0A3A |. FF92 C0000000 CALL DWORD PTR DS:[EDX+C0]
004E0A40 |. E9 0C020000 JMP UnPacK.004E0C51
004E0A45 |> 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
004E0A48 |. 8B83 14030000 MOV EAX,DWORD PTR DS:[EBX+314]
004E0A4E |. E8 B9E5F6FF CALL UnPacK.0044F00C
004E0A53 |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
004E0A56 |. 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
004E0A59 |. E8 928BF2FF CALL UnPacK.004095F0
004E0A5E |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
004E0A61 |. 50 PUSH EAX
004E0A62 |. 8D55 EC LEA EDX,DWORD PTR SS:[EBP-14]
004E0A65 |. 8B83 0C030000 MOV EAX,DWORD PTR DS:[EBX+30C]
004E0A6B |. E8 9CE5F6FF CALL UnPacK.0044F00C
004E0A70 |. 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14]
004E0A73 |. 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
004E0A76 |. E8 758BF2FF CALL UnPacK.004095F0
004E0A7B |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
004E0A7E |. 50 PUSH EAX
004E0A7F |. 8D55 E4 LEA EDX,DWORD PTR SS:[EBP-1C]
004E0A82 |. 8B83 08030000 MOV EAX,DWORD PTR DS:[EBX+308]
004E0A88 |. E8 7FE5F6FF CALL UnPacK.0044F00C
004E0A8D |. 8B45 E4 MOV EAX,DWORD PTR SS:[EBP-1C]
004E0A90 |. 8D55 E8 LEA EDX,DWORD PTR SS:[EBP-18]
004E0A93 |. E8 588BF2FF CALL UnPacK.004095F0
004E0A98 |. 8B45 E8 MOV EAX,DWORD PTR SS:[EBP-18]
004E0A9B |. 5A POP EDX
004E0A9C |. 59 POP ECX
004E0A9D |. E8 0A070000 CALL UnPacK.004E11AC ; 算法call
004E0AA2 |. 3C 01 CMP AL,1 ; 标志位比较
004E0AA4 |. 0F85 80010000 JNZ UnPacK.004E0C2A
004E0AAA |. 8D55 DC LEA EDX,DWORD PTR SS:[EBP-24]
004E0AAD |. 8B83 0C030000 MOV EAX,DWORD PTR DS:[EBX+30C]
004E0AB3 |. E8 54E5F6FF CALL UnPacK.0044F00C
004E0AB8 |. 8B45 DC MOV EAX,DWORD PTR SS:[EBP-24]
004E0ABB |. 8D55 E0 LEA EDX,DWORD PTR SS:[EBP-20]
004E0ABE |. E8 2D8BF2FF CALL UnPacK.004095F0
004E0AC3 |. 8B55 E0 MOV EDX,DWORD PTR SS:[EBP-20]
004E0AC6 |. A1 A0665700 MOV EAX,DWORD PTR DS:[5766A0]
004E0ACB |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004E0ACD |. 83C0 0C ADD EAX,0C
004E0AD0 |. E8 DB40F2FF CALL UnPacK.00404BB0
004E0AD5 |. 8D55 D4 LEA EDX,DWORD PTR SS:[EBP-2C]
004E0AD8 |. 8B83 14030000 MOV EAX,DWORD PTR DS:[EBX+314]
004E0ADE |. E8 29E5F6FF CALL UnPacK.0044F00C
004E0AE3 |. 8B45 D4 MOV EAX,DWORD PTR SS:[EBP-2C]
004E0AE6 |. 8D55 D8 LEA EDX,DWORD PTR SS:[EBP-28]
004E0AE9 |. E8 028BF2FF CALL UnPacK.004095F0
004E0AEE |. 8B55 D8 MOV EDX,DWORD PTR SS:[EBP-28]
004E0AF1 |. A1 A0665700 MOV EAX,DWORD PTR DS:[5766A0]
004E0AF6 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004E0AF8 |. 83C0 10 ADD EAX,10
004E0AFB |. E8 B040F2FF CALL UnPacK.00404BB0
004E0B00 |. A1 A0665700 MOV EAX,DWORD PTR DS:[5766A0]
004E0B05 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004E0B07 |. 33D2 XOR EDX,EDX
004E0B09 |. 8950 14 MOV DWORD PTR DS:[EAX+14],EDX
004E0B0C |. 6A 00 PUSH 0
004E0B0E |. 68 240D4E00 PUSH UnPacK.004E0D24
004E0B13 |. 68 2C0D4E00 PUSH UnPacK.004E0D2C
004E0B18 |. 8BC3 MOV EAX,EBX
004E0B1A |. E8 DD4CF7FF CALL UnPacK.004557FC
004E0B1F |. 50 PUSH EAX ; |hOwner
004E0B20 |. E8 C773F2FF CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
004E0B25 |. 8D55 CC LEA EDX,DWORD PTR SS:[EBP-34]
004E0B28 |. 8B83 08030000 MOV EAX,DWORD PTR DS:[EBX+308]
004E0B2E |. E8 D9E4F6FF CALL UnPacK.0044F00C
004E0B33 |. 8B45 CC MOV EAX,DWORD PTR SS:[EBP-34]
004E0B36 |. 8D55 D0 LEA EDX,DWORD PTR SS:[EBP-30]
004E0B39 |. E8 B28AF2FF CALL UnPacK.004095F0
004E0B3E |. 8B45 D0 MOV EAX,DWORD PTR SS:[EBP-30]
004E0B41 |. 50 PUSH EAX
004E0B42 |. A1 70675700 MOV EAX,DWORD PTR DS:[576770]
004E0B47 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004E0B49 |. B9 5C0D4E00 MOV ECX,UnPacK.004E0D5C ; ASCII "SerialNO"
004E0B4E |. BA 700D4E00 MOV EDX,UnPacK.004E0D70 ; ASCII "Reg"
004E0B53 |. 8B30 MOV ESI,DWORD PTR DS:[EAX]
004E0B55 |. FF56 04 CALL DWORD PTR DS:[ESI+4]
004E0B58 |. 8D55 C4 LEA EDX,DWORD PTR SS:[EBP-3C]
004E0B5B |. 8B83 0C030000 MOV EAX,DWORD PTR DS:[EBX+30C]
004E0B61 |. E8 A6E4F6FF CALL UnPacK.0044F00C
004E0B66 |. 8B45 C4 MOV EAX,DWORD PTR SS:[EBP-3C]
004E0B69 |. 8D55 C8 LEA EDX,DWORD PTR SS:[EBP-38]
004E0B6C |. E8 7F8AF2FF CALL UnPacK.004095F0
004E0B71 |. 8B45 C8 MOV EAX,DWORD PTR SS:[EBP-38]
004E0B74 |. 50 PUSH EAX
004E0B75 |. A1 70675700 MOV EAX,DWORD PTR DS:[576770]
004E0B7A |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004E0B7C |. B9 7C0D4E00 MOV ECX,UnPacK.004E0D7C ; ASCII "RegNOFir"
004E0B81 |. BA 700D4E00 MOV EDX,UnPacK.004E0D70 ; ASCII "Reg"
004E0B86 |. 8B30 MOV ESI,DWORD PTR DS:[EAX]
004E0B88 |. FF56 04 CALL DWORD PTR DS:[ESI+4]
004E0B8B |. 8D55 BC LEA EDX,DWORD PTR SS:[EBP-44]
004E0B8E |. 8B83 14030000 MOV EAX,DWORD PTR DS:[EBX+314]
004E0B94 |. E8 73E4F6FF CALL UnPacK.0044F00C
004E0B99 |. 8B45 BC MOV EAX,DWORD PTR SS:[EBP-44]
004E0B9C |. 8D55 C0 LEA EDX,DWORD PTR SS:[EBP-40]
004E0B9F |. E8 4C8AF2FF CALL UnPacK.004095F0
004E0BA4 |. 8B45 C0 MOV EAX,DWORD PTR SS:[EBP-40]
004E0BA7 |. 50 PUSH EAX
004E0BA8 |. A1 70675700 MOV EAX,DWORD PTR DS:[576770]
004E0BAD |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004E0BAF |. B9 900D4E00 MOV ECX,UnPacK.004E0D90 ; regnosec
004E0BB4 |. BA 700D4E00 MOV EDX,UnPacK.004E0D70 ; reg
004E0BB9 |. 8B30 MOV ESI,DWORD PTR DS:[EAX]
004E0BBB |. FF56 04 CALL DWORD PTR DS:[ESI+4]
004E0BBE |. 6A 00 PUSH 0
004E0BC0 |. 8B15 F8685700 MOV EDX,DWORD PTR DS:[5768F8] ; UnPacK.00579694
004E0BC6 |. 8B12 MOV EDX,DWORD PTR DS:[EDX]
004E0BC8 |. 8D45 B8 LEA EAX,DWORD PTR SS:[EBP-48]
004E0BCB |. B9 A40D4E00 MOV ECX,UnPacK.004E0DA4 ; infodb\xxklist.edo
004E0BD0 |. E8 8B42F2FF CALL UnPacK.00404E60
004E0BD5 |. 8B55 B8 MOV EDX,DWORD PTR SS:[EBP-48]
004E0BD8 |. A1 EC6C5700 MOV EAX,DWORD PTR DS:[576CEC]
004E0BDD |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004E0BDF |. B9 10270000 MOV ECX,2710
004E0BE4 |. E8 079CFCFF CALL UnPacK.004AA7F0
004E0BE9 |. A1 586D5700 MOV EAX,DWORD PTR DS:[576D58]
004E0BEE |. 8338 00 CMP DWORD PTR DS:[EAX],0
004E0BF1 |. 74 0C JE SHORT UnPacK.004E0BFF
004E0BF3 |. A1 586D5700 MOV EAX,DWORD PTR DS:[576D58]
004E0BF8 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004E0BFA |. E8 75BAF8FF CALL UnPacK.0046C674
004E0BFF |> A1 FC6A5700 MOV EAX,DWORD PTR DS:[576AFC]
004E0C04 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004E0C06 |. E8 01F2F8FF CALL UnPacK.0046FE0C
004E0C0B |. 6A 01 PUSH 1
004E0C0D |. 6A 00 PUSH 0
004E0C0F |. 6A 00 PUSH 0
004E0C11 |. 68 B80D4E00 PUSH UnPacK.004E0DB8 ; endo.exe
004E0C16 |. 68 C40D4E00 PUSH UnPacK.004E0DC4 ; open
004E0C1B |. 8BC3 MOV EAX,EBX
004E0C1D |. E8 DA4BF7FF CALL UnPacK.004557FC
004E0C22 |. 50 PUSH EAX ; |hWnd
004E0C23 |. E8 68BAF5FF CALL <JMP.&shell32.ShellExecuteA> ; \ShellExecuteA
004E0C28 |. EB 27 JMP SHORT UnPacK.004E0C51
004E0C2A |> 6A 00 PUSH 0
004E0C2C |. 68 CC0D4E00 PUSH UnPacK.004E0DCC ; 警告
004E0C31 |. 68 D40D4E00 PUSH UnPacK.004E0DD4 ; 注册码错误!请重新输入!
004E0C36 |. 8BC3 MOV EAX,EBX
--------------------------------------------------------------------------------
004E11AC /$ 55 PUSH EBP ; 跟进算法call到此
004E11AD |. 8BEC MOV EBP,ESP
004E11AF |. 81C4 1CFFFFFF ADD ESP,-0E4
004E11B5 |. 53 PUSH EBX
004E11B6 |. 56 PUSH ESI
004E11B7 |. 33DB XOR EBX,EBX
004E11B9 |. 899D 1CFFFFFF MOV DWORD PTR SS:[EBP-E4],EBX
004E11BF |. 899D 20FFFFFF MOV DWORD PTR SS:[EBP-E0],EBX
004E11C5 |. 894D F4 MOV DWORD PTR SS:[EBP-C],ECX ; 第三个框的内容
004E11C8 |. 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX ; 第二个框的内容
004E11CB |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX ; 机器码
004E11CE |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 机器码
004E11D1 |. E8 263EF2FF CALL UnPacK.00404FFC
004E11D6 |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
004E11D9 |. E8 1E3EF2FF CALL UnPacK.00404FFC
004E11DE |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
004E11E1 |. E8 163EF2FF CALL UnPacK.00404FFC
004E11E6 |. 33C0 XOR EAX,EAX ; EAX清零
004E11E8 |. 55 PUSH EBP
004E11E9 |. 68 DD124E00 PUSH UnPacK.004E12DD
004E11EE |. 64:FF30 PUSH DWORD PTR FS:[EAX]
004E11F1 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
004E11F4 |. C645 F3 00 MOV BYTE PTR SS:[EBP-D],0
004E11F8 |. 33F6 XOR ESI,ESI
004E11FA |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004E11FD |. E8 123CF2FF CALL UnPacK.00404E14
004E1202 |. 8BD0 MOV EDX,EAX
004E1204 |. 85D2 TEST EDX,EDX
004E1206 |. 7E 2A JLE SHORT UnPacK.004E1232
004E1208 |. B9 01000000 MOV ECX,1
004E120D |. 8D85 24FFFFFF LEA EAX,DWORD PTR SS:[EBP-DC]
004E1213 |> 8B5D FC /MOV EBX,DWORD PTR SS:[EBP-4]
004E1216 |. 0FB65C0B FF |MOVZX EBX,BYTE PTR DS:[EBX+ECX-1]
004E121B |. 8918 |MOV DWORD PTR DS:[EAX],EBX
004E121D |. 6918 39590500 |IMUL EBX,DWORD PTR DS:[EAX],55939 ; 机器码的Ascii乘以55939
004E1223 |. 03F3 |ADD ESI,EBX
004E1225 |. 81C6 5BE40600 |ADD ESI,6E45B ; 再加上6E45B
004E122B |. 41 |INC ECX
004E122C |. 83C0 04 |ADD EAX,4
004E122F |. 4A |DEC EDX
004E1230 |.^ 75 E1 \JNZ SHORT UnPacK.004E1213 ; 通过循环来计算,为第一个框的内容
004E1232 |> 33C0 XOR EAX,EAX ; EAX=0
004E1234 |. 8945 EC MOV DWORD PTR SS:[EBP-14],EAX
004E1237 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004E123A |. E8 D53BF2FF CALL UnPacK.00404E14
004E123F |. 8BD0 MOV EDX,EAX
004E1241 |. 85D2 TEST EDX,EDX
004E1243 |. 7E 2E JLE SHORT UnPacK.004E1273
004E1245 |. B9 01000000 MOV ECX,1
004E124A |. 8D85 24FFFFFF LEA EAX,DWORD PTR SS:[EBP-DC]
004E1250 |> 8B5D FC /MOV EBX,DWORD PTR SS:[EBP-4]
004E1253 |. 0FB65C0B FF |MOVZX EBX,BYTE PTR DS:[EBX+ECX-1]
004E1258 |. 8918 |MOV DWORD PTR DS:[EAX],EBX
004E125A |. 6918 49860C00 |IMUL EBX,DWORD PTR DS:[EAX],0C8649 ; 机器码的Ascii乘以C8649
004E1260 |. 035D EC |ADD EBX,DWORD PTR SS:[EBP-14]
004E1263 |. 81C3 5BE40600 |ADD EBX,6E45B ; 再加上6E45B
004E1269 |. 895D EC |MOV DWORD PTR SS:[EBP-14],EBX
004E126C |. 41 |INC ECX
004E126D |. 83C0 04 |ADD EAX,4
004E1270 |. 4A |DEC EDX
004E1271 |.^ 75 DD \JNZ SHORT UnPacK.004E1250 ; 通过循环来计算,为第二个框的内容
004E1273 |> 8D95 20FFFFFF LEA EDX,DWORD PTR SS:[EBP-E0]
004E1279 |. 8BC6 MOV EAX,ESI
004E127B |. E8 B087F2FF CALL UnPacK.00409A30
004E1280 |. 8B95 20FFFFFF MOV EDX,DWORD PTR SS:[EBP-E0] ; 应该是第一个框的内容
004E1286 |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] ; 我在第一个框输入的内容
004E1289 |. E8 CA3CF2FF CALL UnPacK.00404F58 ; 比较
004E128E |. 75 22 JNZ SHORT UnPacK.004E12B2 ; 不等就Game Over
004E1290 |. 8D95 1CFFFFFF LEA EDX,DWORD PTR SS:[EBP-E4]
004E1296 |. 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14]
004E1299 |. E8 9287F2FF CALL UnPacK.00409A30
004E129E |. 8B95 1CFFFFFF MOV EDX,DWORD PTR SS:[EBP-E4]
004E12A4 |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
004E12A7 |. E8 AC3CF2FF CALL UnPacK.00404F58
004E12AC |. 75 04 JNZ SHORT UnPacK.004E12B2
004E12AE |. C645 F3 01 MOV BYTE PTR SS:[EBP-D],1
004E12B2 |> 33C0 XOR EAX,EAX
004E12B4 |. 5A POP EDX
004E12B5 |. 59 POP ECX
004E12B6 |. 59 POP ECX
004E12B7 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
004E12BA |. 68 E4124E00 PUSH UnPacK.004E12E4
004E12BF |> 8D85 1CFFFFFF LEA EAX,DWORD PTR SS:[EBP-E4]
004E12C5 |. BA 02000000 MOV EDX,2
004E12CA |. E8 B138F2FF CALL UnPacK.00404B80
004E12CF |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
004E12D2 |. BA 03000000 MOV EDX,3
004E12D7 |. E8 A438F2FF CALL UnPacK.00404B80
004E12DC \. C3 RETN
--------------------------------------------------------------------------------
【算法总结】
第一个注册框:取机器码的ASCII乘0X55939,放到ESI,ESI+0X6E45B,然后循环机器码的长度
第二个注册框:取机器码的ASCII乘0XC8649,放到EBX,EBX+0X6E45B,然后循环机器码的长度
--------------------------------------------------------------------------------
【Delphi算法注册机源码】
procedure TForm1.Button1Click(Sender: TObject);
var
a:string;
b,c,i:integer;
begin
b:=0;
c:=0;
a:=edit1.Text;
for i:=1 to length(a) do
b:=b+ord(a[i])*$55939+$6E45B;
for i:=1 to length(a) do
c:=c+ord(a[i])*$C8649+$6E45B;
edit2.text:=inttostr(b);
edit3.Text:=inttostr(c);
end;
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课