首页
社区
课程
招聘
[求助]一个查表计算注册码的算法
发表于: 2005-12-30 20:18 5305

[求助]一个查表计算注册码的算法

2005-12-30 20:18
5305
有一个软件,安装时要输入密码,经过分析已经找到了关键代码和数据,但验证过程无法求逆,想请各位大虾指教:

程序代码:
100030FB  /$  56            PUSH ESI
100030FC  |.  B8 FFFFFFFF   MOV EAX,-1                               ;运算的一个参数0xffffffff
10003101  |.  57            PUSH EDI
10003102  |.  8BF2          MOV ESI,EDX
10003104  |.  03D0          ADD EDX,EAX
10003106  |.  85F6          TEST ESI,ESI
10003108  |.  74 24         JE SHORT ginstall.1000312E
1000310A  |>  0FB631        /MOVZX ESI,BYTE PTR DS:[ECX]             ;第一次esi=0x34
1000310D  |.  0FB7F8        |MOVZX EDI,AX                            ; 一个参数,第一次edi=0xffff
10003110  |.  C1E8 08       |SHR EAX,8                               ; 参数变换,第一次eax=0x00ffffff
10003113  |.  33F7          |XOR ESI,EDI                             ; 0x34 xor 0xFFFF = 0xFFCB
10003115  |.  81E6 FF000000 |AND ESI,0FF                             ; esi=0xCB
1000311B  |.  41            |INC ECX
1000311C  |.  8B34B5 70FC00>|MOV ESI,DWORD PTR DS:[ESI*4+1000FC70]   ;查表运算,无法解决的问题。
10003123  |.  33F0          |XOR ESI,EAX                             ; 再将查表结果参与一次异或运算
10003125  |.  8BC6          |MOV EAX,ESI                             ; 前一次运算的结果参与下一次运算,这也是难点之一
10003127  |.  8BF2          |MOV ESI,EDX
10003129  |.  4A            |DEC EDX
1000312A  |.  85F6          |TEST ESI,ESI
1000312C  |.^ 75 DC         \JNZ SHORT ginstall.1000310A            
1000312E  |>  F7D0          NOT EAX
10003130  |.  5F            POP EDI
10003131  |.  5E            POP ESI
10003132  \.  C3            RETN                                     ;最后的结果必须是eax=0x637c5355

进入入口时的寄存器初始状态:
EAX 00000002  输入密码的长度
ECX 0012F598 ASCII "42" 输入密码值
EDX 00000003 输入密码的长度+1
EBX 00583D28
ESP 0012F590 栈顶
EBP 0012F798
ESI 00000419 无关
EDI 00000111 无关
EIP 100030FB

所要查的表格(数字看起来根本没有规律):
1000FC70  00 00 00 00 96 30 07 77 2C 61 0E EE BA 51 09 99  ....?w,a詈Q.?

1000FC80  19 C4 6D 07 8F F4 6A 70 35 A5 63 E9 A3 95 64 9E  捻?jp5ャ椋??

1000FC90  32 88 DB 0E A4 B8 DC 79 1E E9 D5 E0 88 D9 D2 97  2?じ荠檎?僖?

1000FCA0  2B 4C B6 09 BD 7C B1 7E 07 2D B8 E7 91 1D BF 90  +L?近炳-哥??
1000FCB0  64 10 B7 1D F2 20 B0 6A 48 71 B9 F3 DE 41 BE 84  d??瓣Hq贵蘖?
1000FCC0  7D D4 DA 1A EB E4 DD 6D 51 B5 D4 F4 C7 85 D3 83  }在脘蓓Q翟羟??

1000FCD0  56 98 6C 13 C0 A8 6B 64 7A F9 62 FD EC C9 65 8A  V?括kdz??慑?

1000FCE0  4F 5C 01 14 D9 6C 06 63 63 3D 0F FA F5 0D 08 8D  O\凫cc=?.?

1000FCF0  C8 20 6E 3B 5E 10 69 4C E4 41 60 D5 72 71 67 A2  ?n;^iL淞`镇qg?

1000FD00  D1 E4 03 3C 47 D4 04 4B FD 85 0D D2 6B B5 0A A5  唁<G?K?.译??

1000FD10  FA A8 B5 35 6C 98 B2 42 D6 C9 BB DB 40 F9 BC AC  ??l?B稚慧@??

1000FD20  E3 6C D8 32 75 5C DF 45 CF 0D D6 DC 59 3D D1 AB  沆?u\吲?周Y=勋
1000FD30  AC 30 D9 26 3A 00 DE 51 80 51 D7 C8 16 61 D0 BF  ??:.扪?兹a锌
1000FD40  B5 F4 B4 21 23 C4 B3 56 99 95 BA CF 0F A5 BD B8  掉?#某V?合ソ?

1000FD50  9E B8 02 28 08 88 05 5F B2 D9 0C C6 24 E9 0B B1  ?(?_操.???

1000FD60  87 7C 6F 2F 11 4C 68 58 AB 1D 61 C1 3D 2D 66 B6  ?o/LhX?a?-f?

1000FD70  90 41 DC 76 06 71 DB 01 BC 20 D2 98 2A 10 D5 EF  ?荟q???*诊
1000FD80  89 85 B1 71 1F B5 B6 06 A5 E4 BF 9F 33 D4 B8 E8  ?瘪刀ヤ?3愿?

1000FD90  A2 C9 07 78 34 F9 00 0F 8E A8 09 96 18 98 0E E1  ⑸x4??.???

1000FDA0  BB 0D 6A 7F 2D 3D 6D 08 97 6C 64 91 01 5C 63 E6  ?j-=m?d?\c?

1000FDB0  F4 51 6B 6B 62 61 6C 1C D8 30 65 85 4E 00 62 F2  粞kkbal?e?.b?

1000FDC0  ED 95 06 6C 7B A5 01 1B C1 F4 08 82 57 C4 0F F5  ?l{?留???

1000FDD0  C6 D9 B0 65 50 E9 B7 12 EA B8 BE 8B 7C 88 B9 FC  瀑板P榉旮?|??

1000FDE0  DF 1D DD 62 49 2D DA 15 F3 7C D3 8C 65 4C D4 FB  ?葩I-?簏?eL喳
1000FDF0  58 61 B2 4D CE 51 B5 3A 74 00 BC A3 E2 30 BB D4  Xa餐窝?t.迹?辉
1000FE00  41 A5 DF 4A D7 95 D8 3D 6D C4 D1 A4 FB F4 D6 D3  AミJ??m难?糁?

1000FE10  6A E9 69 43 FC D9 6E 34 46 88 67 AD D0 B8 60 DA  j殚C?n4F??膏?

1000FE20  73 2D 04 44 E5 1D 03 33 5F 4C 0A AA C9 7C 0D DD  s-D?3_L.?|.?

1000FE30  3C 71 05 50 AA 41 02 27 10 10 0B BE 86 20 0C C9  <qP?' ? .?

1000FE40  25 B5 68 57 B3 85 6F 20 09 D4 66 B9 9F E4 61 CE  %佃W?o .枣?溽?

1000FE50  0E F9 DE 5E 98 C9 D9 29 22 98 D0 B0 B4 A8 D7 C7  ?^??"?按ㄗ?

1000FE60  17 3D B3 59 81 0D B4 2E 3B 5C BD B7 AD 6C BA C0  =迟??;\椒?豪
1000FE70  20 83 B8 ED B6 B3 BF 9A 0C E2 B6 03 9A D2 B1 74   ?矶晨?舛?濒
1000FE80  39 47 D5 EA AF 77 D2 9D 15 26 DB 04 83 16 DC 73  9G贞??&??荏
1000FE90  12 0B 63 E3 84 3B 64 94 3E 6A 6D 0D A8 5A 6A 7A   c?;d?jm.ㄚjz
1000FEA0  0B CF 0E E4 9D FF 09 93 27 AE 00 0A B1 9E 07 7D   ?????.?}
1000FEB0  44 93 0F F0 D2 A3 08 87 68 F2 01 1E FE C2 06 69  D?鹨????i
1000FEC0  5D 57 62 F7 CB 67 65 80 71 36 6C 19 E7 06 6B 6E  ]Wb魉ge?6l?kn
1000FED0  76 1B D4 FE E0 2B D3 89 5A 7A DA 10 CC 4A DD 67  v轧??Zz?淌葭
1000FEE0  6F DF B9 F9 F9 EF BE 8E 43 BE B7 17 D5 8E B0 60  o吖?锞?痉?班
1000FEF0  E8 A3 D6 D6 7E 93 D1 A1 C4 C2 D8 38 52 F2 DF 4F  瑁种~?∧仑8R蜻O
1000FF00  F1 67 BB D1 67 57 BC A6 DD 06 B5 3F 4B 36 B2 48  耒谎gW鸡??K6踩
1000FF10  DA 2B 0D D8 4C 1B 0A AF F6 4A 03 36 60 7A 04 41  ?.靥.?J6`zA
1000FF20  C3 EF 60 DF 55 DF 67 A8 EF 8E 6E 31 79 BE 69 46  蔑`哒哏??1y鹃F
1000FF30  8C B3 61 CB 1A 83 66 BC A0 D2 6F 25 36 E2 68 52  ?a??歼绎%6忤R
1000FF40  95 77 0C CC 03 47 0B BB B9 16 02 22 2F 26 05 55  ?.?G 还"/&U
1000FF50  BE 3B BA C5 28 0B BD B2 92 5A B4 2B 04 6A B3 5C  ?号( 讲??j耻
1000FF60  A7 FF D7 C2 31 CF D0 B5 8B 9E D9 2C 1D AE DE 5B  ?茁1闲??,?[
1000FF70  B0 C2 64 9B 26 F2 63 EC 9C A3 6A 75 0A 93 6D 02  奥d?蜚?ju.?
1000FF80  A9 06 09 9C 3F 36 0E EB 85 67 07 72 13 57 00 05  ?.?6?grW.
1000FF90  82 4A BF 95 14 7A B8 E2 AE 2B B1 7B 38 1B B6 0C  ??z糕?丙8?
1000FFA0  9B 8E D2 92 0D BE D5 E5 B7 EF DC 7C 21 DF DB 0B  ??.菊宸镘|!咣
1000FFB0  D4 D2 D3 86 42 E2 D4 F1 F8 B3 DD 68 6E 83 DA 1F  砸?B庠聒齿hn?
1000FFC0  CD 16 BE 81 5B 26 B9 F6 E1 77 B0 6F 77 47 B7 18  ??[&滚狩帮wG?
1000FFD0  E6 5A 08 88 70 6A 0F FF CA 3B 06 66 5C 0B 01 11  孚?j?f\ 
1000FFE0  FF 9E 65 8F 69 AE 62 F8 D3 FF 6B 61 45 CF 6C 16  ?e????aE响
1000FFF0  78 E2 0A A0 EE D2 0D D7 54 83 04 4E C2 B3 03 39  x?_羁自?N鲁9
10010000  61 26 67 A7 F7 16 60 D0 4D 47 69 49 DB 77 6E 3E  a&g?`型GiI埙n>
10010010  4A 6A D1 AE DC 5A D6 D9 66 0B DF 40 F0 3B D8 37  Jj旬苴仲f 呃??
10010020  53 AE BC A9 C5 9E BB DE 7F CF B2 47 E9 FF B5 30  S?┡??喜G??
10010030  1C F2 BD BD 8A C2 BA CA 30 93 B3 53 A6 A3 B4 24  蚪?潞??SΓ?
10010040  05 36 D0 BA 93 06 D7 CD 29 57 DE 54 BF 67 D9 23  6泻?淄)W拊跨?
10010050  2E 7A 66 B3 B8 4A 61 C4 02 1B 68 5D 94 2B 6F 2A  .zf掣Ja?h]?o*
10010060  37 BE 0B B4 A1 8E 0C C3 1B DF 05 5A 8D EF 02 2D  7?础???Z?-
10010070  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 210
活跃值: (11)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
声明:本人最终目的不在于获得注册码,因为我已经知道了,是http://**********.com
(*表示一个任意字符,具体内容保密)
2005-12-30 20:36
0
雪    币: 214
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
先跟踪表是怎么生成的,如果是静态表,那么写注册机的时候可以直接COPY.

至于求逆,如果是f(name)=F(sn)的形式,你可以把f()的算法先弄清楚,然后逆求F()这个过程就行了.前一次运算的结果参与下一次运算,这也分析清楚后也可逆的
2005-12-31 10:33
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
4
呵呵,这是CRC32的算法。
2005-12-31 18:57
0
游客
登录 | 注册 方可回帖
返回
//