sinainluoye 发表于 2015-8-18 20:24

【自制】无壳CM七连发

本帖最后由 sinainluoye 于 2015-8-19 23:12 编辑

自己琢磨练习Crack有几天了,觉得应该了解些更多的东西了,但是没找到什么特别好的资源,于是就尝试字写了下CM,一共七发,全部是用C/C++写的控制台程序(黑框框),编译器是g++ (gun c++),难度是递进的(每关都是在前一关的代码基础上加些修改),我表示不看源码的话只能过掉第四关,看源码也只能过掉第五关,希望各位大大过掉5,6,7 这三关的时候给些详细的解答~

ps:写程序的时候就是想着用爆破搞的,3~7关密码的加密算法是一样的,所以还是希望大家爆破掉啦= =!

1~7关,每关都以看到源码的解压密码且程序正常退出为目的
(貌似没通关也能看到源码的解压密码,大家自觉一点啦~):








这个是没加密码的程序源码,希望大家不要直接看




欢迎和我讨论啦~

Wheat 发表于 2015-8-18 23:33

只能到第四关

第五六关只能到这里

939372735 发表于 2015-8-19 06:44

没看源码的情况的情况下做到第三关了,做不下去了,第三关有BUG。//第一关:Hi-Man-You-Are-Good
00401388    C70424 24D04000 MOV   DWORD PTR SS:,第一关.0040D024               ; ASCII "请输入密码"
0040138F    E8 C8A70000   CALL    <JMP.&msvcrt.puts>
00401394    8D85 00FCFFFF   LEA   EAX,DWORD PTR SS:
0040139A    894424 04       MOV   DWORD PTR SS:,EAX
0040139E    C70424 2FD04000 MOV   DWORD PTR SS:,第一关.0040D02F               ; ASCII "%s"
004013A5    E8 BAA70000   CALL    <JMP.&msvcrt.scanf>
004013AA    C74424 04 32D04>MOV   DWORD PTR SS:,第一关.0040D032             ; ASCII "Hi-Man-You-Are-Good"
004013B2    8D85 00FCFFFF   LEA   EAX,DWORD PTR SS:
004013B8    890424          MOV   DWORD PTR SS:,EAX
004013BB    E8 ACA70000   CALL    <JMP.&msvcrt.strcmp>
004013C0    85C0            TEST    EAX,EAX
004013C2    74 3F         JE      SHORT 第一关.00401403
004013C4    C74424 0C 00000>MOV   DWORD PTR SS:,0x0
004013CC    C74424 08 46D04>MOV   DWORD PTR SS:,第一关.0040D046             ; ASCII "Error"
004013D4    C74424 04 4CD04>MOV   DWORD PTR SS:,第一关.0040D04C             ; ASCII "再试试吧!"
004013DC    C70424 00000000 MOV   DWORD PTR SS:,0x0
004013E3    C785 C8FBFFFF 0>MOV   DWORD PTR SS:,0x1
004013ED    E8 EAA70000   CALL    <JMP.&USER32.MessageBoxA>
004013F2    83EC 10         SUB   ESP,0x10
004013F5    C70424 57D04000 MOV   DWORD PTR SS:,第一关.0040D057               ; ASCII "cls"
004013FC    E8 73A70000   CALL    <JMP.&msvcrt.system>
00401401^ EB 85         JMP   SHORT 第一关.00401388
00401403    C74424 0C 00000>MOV   DWORD PTR SS:,0x0
0040140B    C74424 08 46D04>MOV   DWORD PTR SS:,第一关.0040D046             ; ASCII "Error"
00401413    C74424 04 5CD04>MOV   DWORD PTR SS:,第一关.0040D05C             ; ASCII "过关了~源码解压密码为: scdghxscfjghs"

//第二关:qwertyuiopasdfghjklzxcvbnm
00401383    55            PUSH    EBP
00401384    89E5            MOV   EBP,ESP
00401386    83EC 08         SUB   ESP,0x8
00401389    C74424 04 24D04>MOV   DWORD PTR SS:,第二关.0040D024             ; ASCII "qwertyuiopasdfghjklzxcvbnm"
00401391    8B45 08         MOV   EAX,DWORD PTR SS:
00401394    890424          MOV   DWORD PTR SS:,EAX
00401397    E8 98FFFFFF   CALL    第二关.00401334
0040139C    84C0            TEST    AL,AL
0040139E    74 04         JE      SHORT 第二关.004013A4
004013A0    B0 01         MOV   AL,0x1
004013A2    EB 02         JMP   SHORT 第二关.004013A6
004013A4    B0 00         MOV   AL,0x0
004013A6    C9            LEAVE
004013A7    C3            RETN

004013F7    E8 34940000   CALL    第二关.0040A830
004013FC    C70424 3FD04000 MOV   DWORD PTR SS:,第二关.0040D03F               ; ASCII "请输入密码"
00401403    E8 B4A70000   CALL    <JMP.&msvcrt.puts>
00401408    8D85 00FCFFFF   LEA   EAX,DWORD PTR SS:
0040140E    894424 04       MOV   DWORD PTR SS:,EAX
00401412    C70424 4AD04000 MOV   DWORD PTR SS:,第二关.0040D04A               ; ASCII "%s"
00401419    E8 A6A70000   CALL    <JMP.&msvcrt.scanf>
0040141E    8D85 00FCFFFF   LEA   EAX,DWORD PTR SS:
00401424    890424          MOV   DWORD PTR SS:,EAX
00401427    E8 57FFFFFF   CALL    第二关.00401383
0040142C    84C0            TEST    AL,AL
0040142E    75 3F         JNZ   SHORT 第二关.0040146F
00401430    C74424 0C 00000>MOV   DWORD PTR SS:,0x0
00401438    C74424 08 4DD04>MOV   DWORD PTR SS:,第二关.0040D04D             ; ASCII "Error"
00401440    C74424 04 53D04>MOV   DWORD PTR SS:,第二关.0040D053             ; ASCII "再试试吧!"
00401448    C70424 00000000 MOV   DWORD PTR SS:,0x0
0040144F    C785 C8FBFFFF 0>MOV   DWORD PTR SS:,0x1
00401459    E8 DEA70000   CALL    <JMP.&USER32.MessageBoxA>
0040145E    83EC 10         SUB   ESP,0x10
00401461    C70424 5ED04000 MOV   DWORD PTR SS:,第二关.0040D05E               ; ASCII "cls"
00401468    E8 5FA70000   CALL    <JMP.&msvcrt.system>
0040146D^ EB 8D         JMP   SHORT 第二关.004013FC
0040146F    C74424 0C 00000>MOV   DWORD PTR SS:,0x0
00401477    C74424 08 4DD04>MOV   DWORD PTR SS:,第二关.0040D04D             ; ASCII "Error"
0040147F    C74424 04 64D04>MOV   DWORD PTR SS:,第二关.0040D064             ; ASCII "过关了~源码的解压密码为: as21f3af14a6"
00401487    C70424 00000000 MOV   DWORD PTR SS:,0x0
0040148E    C785 C8FBFFFF F>MOV   DWORD PTR SS:,-0x1
00401498    E8 9FA70000   CALL    <JMP.&USER32.MessageBoxA>
0040149D    83EC 10         SUB   ESP,0x10
004014A0    B8 00000000   MOV   EAX,0x0
004014A5    8985 C0FBFFFF   MOV   DWORD PTR SS:,EAX
004014AB    EB 1B         JMP   SHORT 第二关.004014C8

//第三关
0040140C    C70424 24E04600 MOV   DWORD PTR SS:,第三关.0046E024               ; ASCII "请输入密码"
00401413    E8 58EB0100   CALL    <JMP.&msvcrt.puts>
00401418    8D85 00FCFFFF   LEA   EAX,DWORD PTR SS:
0040141E    894424 04       MOV   DWORD PTR SS:,EAX
00401422    C70424 2FE04600 MOV   DWORD PTR SS:,第三关.0046E02F               ; ASCII "%s"
00401429    E8 4AEB0100   CALL    <JMP.&msvcrt.scanf>
0040142E    8D85 00FCFFFF   LEA   EAX,DWORD PTR SS:
00401434    890424          MOV   DWORD PTR SS:,EAX
00401437    E8 49FFFFFF   CALL    第三关.00401385
0040143C    84C0            TEST    AL,AL
0040143E    75 3F         JNZ   SHORT 第三关.0040147F
00401440    C74424 0C 00000>MOV   DWORD PTR SS:,0x0
00401448    C74424 08 32E04>MOV   DWORD PTR SS:,第三关.0046E032             ; ASCII "Error"
00401450    C74424 04 38E04>MOV   DWORD PTR SS:,第三关.0046E038             ; ASCII "再试试吧!"
00401458    C70424 00000000 MOV   DWORD PTR SS:,0x0
0040145F    C785 C8FBFFFF 0>MOV   DWORD PTR SS:,0x1
00401469    E8 AEEC0100   CALL    <JMP.&USER32.MessageBoxA>
0040146E    83EC 10         SUB   ESP,0x10
00401471    C70424 43E04600 MOV   DWORD PTR SS:,第三关.0046E043               ; ASCII "cls"
00401478    E8 03EB0100   CALL    <JMP.&msvcrt.system>
0040147D^ EB 8D         JMP   SHORT 第三关.0040140C
0040147F    C74424 0C 00000>MOV   DWORD PTR SS:,0x0
00401487    C74424 08 32E04>MOV   DWORD PTR SS:,第三关.0046E032             ; ASCII "Error"
0040148F    C74424 04 48E04>MOV   DWORD PTR SS:,第三关.0046E048             ; ASCII "过关了~ 源码的解压密码为: 1adf5h8wrt"

//??????此题是BUG吧,是楼主的代码有BUG呢?还是我实在太菜了???????
//楼主你确定不要把输入的ASCII码转换为数值再乖以16?
0040138D    8B45 08         MOV   EAX,DWORD PTR SS:
00401390    890424          MOV   DWORD PTR SS:,EAX
00401393    E8 9CFFFFFF   CALL    第三关.00401334                //将输入的密码转换为64位的16进制数,结果要为60C9AD000FB2;
00401398    89C3            MOV   EBX,EAX
0040139A    81F3 B20F00AD   XOR   EBX,0xAD000FB2
004013A0    89D6            MOV   ESI,EDX
004013A2    81F6 C9600000   XOR   ESI,0x60C9

jimo 发表于 2015-8-18 20:30

感谢楼主,够我玩好几天的了。。

Aonk 发表于 2015-8-18 20:32

够我这个新手慢慢玩了

dongfang155 发表于 2015-8-18 20:34

不可以整合到一起么,分P很费CB的

捷豹网络丶贱仔 发表于 2015-8-18 20:36

sinainluoye 发表于 2015-8-18 20:37

dongfang155 发表于 2015-8-18 20:34
不可以整合到一起么,分P很费CB的

CM区下载不是不花CB么???!!!

dongfang155 发表于 2015-8-18 20:45

sinainluoye 发表于 2015-8-18 20:37
CM区下载不是不花CB么???!!!

好吧我承认我不知道

1786363325 发表于 2015-8-18 20:53

谢谢 @Thank you

XKQ 发表于 2015-8-18 20:58

好吧C++源码看不懂。cm玩不动
页: [1] 2 3
查看完整版本: 【自制】无壳CM七连发