论坛: 编程破解 标题: [转帖]信息小管家算法分析 复制本贴地址    
作者: yongmin [yongmin]    论坛用户   登录
作者:小子贼野
转贴自:一蓑烟雨
【破解作者】 小子贼野
【作者主页】 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,然后循环机器码的长度


地主 发表时间: 07-08-17 11:17

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号