吾爱破解160个crackme之005
来源:互联网 发布:知其所以然技术论坛 编辑:程序博客网 时间:2024/05/01 03:53
题目只做到了爆破这一层,注册流程比较麻烦,跟了一阵子没有头绪就放弃了,不想熬夜- -,大家可以看看吾爱论坛的帖子参考一下。
爆破来说还是比较简单的,拿到程序,运行了一下发现代码不太对劲,应该是被加壳了的,用peid一查,发现时upx的壳,脱掉还是比较简单的,之后拿到正常运行的程序运行,同时拿到dede下面分析:
发现1:
button注册的函数只有两行,可以判断出这个函数没有什么用。不是关键点:
004474C0 C7801C030000E7030000 mov dword ptr [eax+$031C], $000003E7004474CA C3 ret
查看其他的过程函数Timer2Timer
004473E4 53 push ebx004473E5 8BD8 mov ebx, eax004473E7 81BB04030000340C0000 cmp dword ptr [ebx+$0304], $00000C34004473F1 0F8488000000 jz 0044747F004473F7 81BB080300000D230000 cmp dword ptr [ebx+$0308], $0000230D00447401 747C jz 0044747F00447403 81BB10030000940F0000 cmp dword ptr [ebx+$0310], $00000F940044740D 7570 jnz 0044747F0044740F 8B8318030000 mov eax, [ebx+$0318]00447415 3B8314030000 cmp eax, [ebx+$0314]0044741B 7562 jnz 0044747F0044741D 81BB1C030000E7030000 cmp dword ptr [ebx+$031C], $000003E700447427 7456 jz 0044747F00447429 33D2 xor edx, edx0044742B 8B83D8020000 mov eax, [ebx+$02D8]00447431 8B08 mov ecx, [eax]00447433 FF515C call dword ptr [ecx+$5C]00447436 33D2 xor edx, edx00447438 8B83DC020000 mov eax, [ebx+$02DC]0044743E 8B08 mov ecx, [eax]00447440 FF515C call dword ptr [ecx+$5C]00447443 33D2 xor edx, edx00447445 8B83E0020000 mov eax, [ebx+$02E0]0044744B 8B08 mov ecx, [eax]0044744D FF515C call dword ptr [ecx+$5C]00447450 33D2 xor edx, edx00447452 8B83E4020000 mov eax, [ebx+$02E4]00447458 8B08 mov ecx, [eax]0044745A FF515C call dword ptr [ecx+$5C]0044745D A1A8984400 mov eax, dword ptr [$004498A8]00447462 83C070 add eax, +$7000447465 BA8C744400 mov edx, $0044748C
有很多的cmp和jmp函数,可以看出这个函数的作用应该是比较大的,用ollydbg跟一下看到如下字符:
00447465 BA 8C744400 mov edx,dumped_.0044748C ; 厉害厉害真厉害!佩服佩服真佩服!!0044746A E8 EDC4FBFF call dumped_.0040395C0044746F BA B8744400 mov edx,dumped_.004474B8 ; 注册了00447474 8B83 EC020000 mov eax,dword ptr ds:[ebx+0x2EC]0044747A E8 3DCCFDFF call dumped_.004240BC0044747F 5B pop ebx00447480 C3 retn
可以判断这就是关键的判断函数,找到这里就很容易爆破这个程序了。我们往上观察其实是有4个image的mousedown函数的,然后都会提示注册没有成功,
00447378 55 push ebp00447379 8BEC mov ebp,esp0044737B 53 push ebx0044737C 56 push esi0044737D 8BD9 mov ebx,ecx0044737F 8BF0 mov esi,eax00447381 6A 00 push 0x000447383 66:8B0D B473440>mov cx,word ptr ds:[0x4473B4]0044738A B2 02 mov dl,0x20044738C B8 C0734400 mov eax,dumped_.004473C0 ; 注册尚未成功,同志仍需努力! 8)00447391 E8 FEE2FFFF call dumped_.0044569400447396 84DB test bl,bl00447398 75 07 jnz short dumped_.004473A10044739A 8386 18030000 0>add dword ptr ds:[esi+0x318],0x7004473A1 80FB 01 cmp bl,0x1004473A4 75 07 jnz short dumped_.004473AD004473A6 8386 18030000 1>add dword ptr ds:[esi+0x318],0x1B004473AD 5E pop esi004473AE 5B pop ebx004473AF 5D pop ebp004473B0 C2 0C00 retn 0xC
嗯,,,之后就这样,,,嗯,,
看一下注册流程好了:
第一步:新建一个路径为X:\ajj.126.c0m\j\o\j\o\ok.txt的文本文件,文件内容的二进制为
20 61 6A 6A D0 B4 B5 C4 43 4B 6D 65D5 E6 C0 C3 21 FF FF,给出二进制的原因主要是因为后面两个字符FF FF打文本打不出来,这句话的文本显示为“ajj写的CKme真烂!
这个文件的作用就是会在界面中多显示出一个输入框(下面记为Edit2),但是初始是禁用的,输不了东西。
第二步:打开程序,初始化完成之后,鼠标右键点击“注册”按钮5次。记住一定是鼠标右键,而且必须是点击5次,如果点错不要找我哦;
第三步:在显示图片的图片框中双击没有图片显示的地方;
这一步完成之后,输入框Edit2就可以输入内容了。
第四步:输入注册名和Edit2,。这两个输入的内容也是有要求的,注册名长度必须是3的倍数,Edit2输入的内容长度必须为8,且第2个字符为’_’,第6个字符为’,’。
我在跟踪的时候分别输入的”trisinker”和”1_345,78”
第五步:输入完成之后,双击Edit2;
第六步:在图片3(“性相近“)出现时,移动鼠标从界面的右下角外部进入程序界面;
第七步:在图片2(“性本善“)出现时,移动鼠标从界面的左下角外部进入程序界面;
第八步:在图片 4(“习相远“)出现时,鼠标左键点击1次图片4,右键点击8次图片4.
注意这是最后一步,可能每台机器的状况都不一样。请勿按照上面说的点击。
其实这一步中点击图片1(“人之初“),图片2、图片3、图片4哪些图片,鼠标左键和右键各点击多少次,这个是一个很复杂的算法。
决定点击方式的参数就是输入的两个字符串,以及程序所在磁盘的剩余磁盘空间,在第五步的双击Edit2时候会计算出一个值存储在ds:[ebx+0x30C]中,
根据这个值就可以知道如何点击图片。
以上引用https://www.52pojie.cn/thread-366291-1-1.html的帖子。
发现其实button注册是有用的哈- -,但是这个注册key,,佩服大大的思想。。
- 吾爱破解160个crackme之005
- 吾爱破解160个crackme之002
- 吾爱破解160个crackme之003
- 吾爱破解160个crackme之004
- 吾爱破解160个crackme之006
- 吾爱破解160个crackme之007
- 吾爱破解160个crackme之014
- 吾爱破解160个crackme之008 009 0010 0011
- 吾爱破解crackme 018 019
- 吾爱破解crackme 023 024
- 吾爱破解crackme 033 034
- 吾爱破解crackme 065-070
- 实战吾爱论坛160个crackme——(1)堆栈回溯法
- 160个破解练习之CrackMe 005 CKme002
- 160个破解练习之CrackMe 006
- 160个破解练习之CrackMe 007
- 160个破解练习之CrackMe 008
- 160个破解练习之CrackMe 001 Acid burn
- 需要深入学习的开源项目
- C++学习笔记——正则表达式
- 使用BootStrap Inputfile 遇到的问题
- poj
- hdu 6143(2017多校联赛08-11)
- 吾爱破解160个crackme之005
- HTML 框架[frame&iframe]
- Python列表
- Access denied for user 'Administrator'@'localhost' (using password: YES)
- 时间复杂度学习笔记
- c/c++整理--类String的构造函数、析构函数和赋值函数
- uC/OS-II系统学习笔记(3)——实时操作系统概念下篇
- css3 布局方式
- c++模板