注册看雪很多年,依然是菜鸟。这两天大赛,看了不少大侠的表演,不停的膜拜。深受启发。闲着总是闲着。是谁说的,大侠们玩技术,菜鸟玩收藏!呵呵,不想,今天遇上个咱能蒙混对付的。因为是蒙混过关,本不想提交,虚荣心作祟,破文一篇,以示存在!
一、查壳 无壳
三、试运行 发现三个关键字串:密码有问题!;用户名不能为空
四、OD载入
1、试着看了下字符串参考,居然有发现?
不会是假的吧?试试吧,反正其他咱也不会。
2、接下来好办了。按老师说的改跳转指令。到下面这个地方不就行了。
00401BDA > \8D4B 64 LEA ECX,DWORD PTR DS:[EBX+64]
00401BDD . 68 B0604100 PUSH CrackMe.004160B0 ; 恭喜你!
00401BE2 . 51 PUSH ECX
00401BE3 . E8 7F6C0000 CALL CrackMe.00408867
00401BE8 . 83C4 08 ADD ESP,8
00401BEB . 8BCB MOV ECX,EBX
00401BED . 6A 00 PUSH 0
00401BEF . E8 A4AA0000 CALL CrackMe.0040C698
00401BF4 8B5424 18 MOV EDX,DWORD PTR SS:[ESP+18]
00401BF8 . 52 PUSH EDX
00401BF9 . E8 EB7C0000 CALL CrackMe.004098E9
00401BFE . 8B4424 28 MOV EAX,DWORD PTR SS:[ESP+28]
00401C02 . 50 PUSH EAX
00401C03 . E8 E17C0000 CALL CrackMe.004098E9
00401C08 . 8B8C24 B40000>MOV ECX,DWORD PTR SS:[ESP+B4]
00401C0F . 51 PUSH ECX
00401C10 . E8 D47C0000 CALL CrackMe.004098E9
00401C15 . 8B5424 20 MOV EDX,DWORD PTR SS:[ESP+20]
程序都按流程执行,那当然是从上面往下改了:
004018A6 > \8D56 FE LEA EDX,DWORD PTR DS:[ESI-2]
004018A9 . B8 56555555 MOV EAX,55555556
004018AE . F7EA IMUL EDX
004018B0 . 8BC2 MOV EAX,EDX
004018B2 . C1E8 1F SHR EAX,1F
004018B5 . 03D0 ADD EDX,EAX
004018B7 . 8BEA MOV EBP,EDX
004018B9 . 3BE9 CMP EBP,ECX
004018BB . 74 1F JE SHORT CrackMe.004018DC ;这里改为JMP 00401BDA
004018BD . 8D4B 64 LEA ECX,DWORD PTR DS:[EBX+64]
004018C0 . 68 B8604100 PUSH CrackMe.004160B8 ; 密码有问题!
004018C5 . 51 PUSH ECX
004018C6 . E8 9C6F0000 CALL CrackMe.00408867
004018CB . 83C4 08 ADD ESP,8
004018CE . 8BCB MOV ECX,EBX
004018D0 . 6A 00 PUSH 0
004018D2 . E8 C1AD0000 CALL CrackMe.0040C698
004018D7 . /E9 6A030000 JMP CrackMe.00401C46
004018DC > |A1 58624100 MOV EAX,DWORD PTR DS:[416258]
004018E1 . |8D542D 00 LEA EDX,DWORD PTR SS:[EBP+EBP]
试运行,居然出现内存读取错误。怎么回事呢?
用OD跟跟看吧。往远点看,就在“恭喜你”那个地方下个断试试。跑到00401BEF 处也没出现撒子错误,那看来是后面还有猫腻。
晕,这时看海风大侠已经都爆破了。我晕,狂人啊。呵呵,于是想到个阴招。
看到004018D7那里的JMP没有,反正这大赛就是要出注册信息就行了,又没一定要求不损失功能,呵呵,那把00401BF4改为004018D7的JMP不就行了。哈哈!
两个地方改后:
第一处:
004018B7 . 8BEA MOV EBP,EDX
004018B9 . 3BE9 CMP EBP,ECX
004018BB E9 1A030000 JMP CrackMe.00401BDA
004018C0 68 B8604100 PUSH CrackMe.004160B8 ; 密码有问题!
004018C5 51 PUSH ECX
004018C6 . E8 9C6F0000 CALL CrackMe.00408867
第二处:
00401BDA > \8D4B 64 LEA ECX,DWORD PTR DS:[EBX+64]
00401BDD . 68 B0604100 PUSH CrackMe.004160B0 ; 恭喜你!
00401BE2 . 51 PUSH ECX
00401BE3 . E8 7F6C0000 CALL CrackMe.00408867
00401BE8 . 83C4 08 ADD ESP,8
00401BEB . 8BCB MOV ECX,EBX
00401BED . 6A 00 PUSH 0
00401BEF . E8 A4AA0000 CALL CrackMe.0040C698
00401BF4 EB 50 JMP SHORT CrackMe.00401C46
00401BF6 90 NOP
00401BF7 90 NOP
00401BF8 . 52 PUSH EDX
00401BF9 . E8 EB7C0000 CALL CrackMe.004098E9
00401BFE 8B4424 28 MOV EAX,DWORD PTR SS:[ESP+28]
00401C02 . 50 PUSH EAX
运行,OK!
破解后文件:
CrackMe.rar
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)