PC6下载站

分类分类

破解PassMe(CoDe_InSiDe) (2千字)

关注+2004-10-15作者:蓝点

CrackMe下载
破解PassMe(CoDe_InSiDe):
又有插曲了:我正想用W32DASM来反汇编这段程序,谁知,根本什么都没有,没有一点代码!其它版本的W32DASM也不行!
我用FI一查,它不是PE文件,而是一个什么PE WIN GUI,W32DASM拿它没法!
好在我工具齐全,我用Borg Disassembler v2.21!那就有了这篇东东了...呵呵...
...
1000:00401047 6a10 push 10h
1000:00401049 6800134000 push 401300h
1000:0040104e 68e8030000 push 3e8h
1000:00401053 ff7508 push dword ptr [ebp+08h]
1000:00401056 ff15701d4000 call dword ptr [GetDlgItemTextA] /*这里!*/
1000:0040105c 3c08 cmp al, 08h /*NUM.要>=8个字符*/
1000:0040105e 7590 jnz 400ff0h
1000:00401060 bfc2114000 mov edi, 4011c2h
1000:00401065 33c9 xor ecx, ecx
1000:00401067 33d2 xor edx, edx
1000:00401069 33f6 xor esi, esi
; XREFS First: 1000:0040107c Number : 1
1000:0040106b 8a0f mov cl, [edi]
1000:0040106d 8a5701 mov dl, [edi+01h]
1000:00401070 80fa00 cmp dl, 00h
1000:00401073 7409 jz 40107eh
1000:00401075 01d1 add ecx, edx
1000:00401077 01ce add esi, ecx
1000:00401079 83c702 add edi, 02h
1000:0040107c ebed jmp 40106bh
; XREFS First: 1000:00401073 Number : 1
1000:0040107e 01ce add esi, ecx
1000:00401080 0faff0 imul esi, eax
1000:00401083 f7fe idiv esi
1000:00401085 01f6 add esi, esi
1000:00401087 01d6 add esi, edx
1000:00401089 8bd6 mov edx, esi
1000:0040108b c1c210 rol edx, 10h
1000:0040108e 01d6 add esi, edx
1000:00401090 33d2 xor edx, edx
1000:00401092 bf00134000 mov edi, 401300h
1000:00401097 33c0 xor eax, eax
1000:00401099 8b07 mov eax, [edi]
1000:0040109b 8b4f04 mov ecx, [edi+04h]
1000:0040109e 01c8 add eax, ecx
1000:004010a0 3bc6 cmp eax, esi /*这个东东!*/
1000:004010a2 7402 jz 4010a6h
...
这个程序很小,这里面我们要的东东都有了,连同NUM.的算法!
一看就知可以在SICE里用BPX GETDLGITEMTEXTA设断,就行了,那里取得了你输入的NUM.
好了,一看关键的东西全出来了,要CRACK它一点也不难.
分析代码,可以知道正确的NUM.是如何来的,但我要告诉你,在这是不行的...在SICE里面却一看就知道了,为什么?因为要知道004011C2H里的内容,是一个'Wellcome...'的句子,可以在SICE里看到,这里不行.
不理它了,反正也可以不知道!只要你能在:004010A0那个CMP里找到正确的NUM.就行了,是ESI那个,EAX那个是用输入的NUM.计算来的.那么关键就是要知道输入的NUM.要经过怎样的计算:
还是用例子来说吧!要不我不知如何表达...(我不是中文系的吗!)
我输入的NUM.:1234abcd[和以前的一样:-)]
NUM.分成两个:4321和dcba(注意顺序!)
再相加:
4 3 2 1
HEX 34 33 32 31
d c b a
HEX 64 63 62 61 (+
------------------------------
98 96 94 92 H
然后98969492H和ESI里的455B455BH比较,那么可知,找出两组数相加是455B455BH的就OK了,那我们可以大胆设第一组数是21212121H(!!!!)[不要太大,要不相减后,那个数太小就没有字符了:-(,设成相同的数是方便自己计算吗!^-^]好用455B455BH-21212121H=243A243AH($:$:)那么对应正确的NUM: !!!!:$:$
输入程序...OK!


还是把那个计算NUM.的算法说一下吧:
它是将那句话的所有字符相加(16进制)+46H的和*8再+01A2A8H+8H+45580003H=455B455BH
45580003H是用前面得到的数字ROL 10H得来的.


好了,这个就完成了,不难吧?

NUM: !!!!:$:$

OK!

Vitamin C[抗坏血酸].2002.2.5.HY.GD.CHI.

展开全部

相关文章

更多+相同厂商

热门推荐

  • 最新排行
  • 最热排行
  • 评分最高
排行榜

    点击查看更多

      点击查看更多

        点击查看更多

        说两句网友评论

          我要评论...
          取消