ssb 发表于 2010-12-6 09:18

第一个作业_CrackMe,欢迎大家指点。

本帖最后由 ssb 于 2010-12-6 09:42 编辑

初学易语言,凑了第一个作业----一个不完善粗陋的CrackMe,请大家指点完善。
作业写得很粗,没有容错,没有测试,请大家谅解!
语言:易语言静态编译
保护:注册码、无壳、无压缩
说明:CrackMe没有任何反调试、暂没有使用特征码、不防爆破、请朋友们提供一组能正常注册成功的用户名+注册码即可。
   不知道是否存在内存明码比较的问题?

lkou 发表于 2010-12-7 15:59

本帖最后由 lkou 于 2010-12-7 16:04 编辑

研究算法神马的最头疼了


看看有没有懂的人

明码给MD5了

女孩不可信 发表于 2010-12-8 01:24

00403037      837D FC 01    CMP DWORD PTR SS:,1
0040303B      0F85 39000000 JNZ CrackMe.0040307A
00403041      837D F8 01    CMP DWORD PTR SS:,1
00403045      0F85 2F000000 JNZ CrackMe.0040307A
0040304B      837D F4 01    CMP DWORD PTR SS:,1
0040304F      0F85 25000000 JNZ CrackMe.0040307A
00403055      837D F0 01    CMP DWORD PTR SS:,1
00403059      0F85 1B000000 JNZ CrackMe.0040307A
0040305F      837D EC 01    CMP DWORD PTR SS:,1
00403063      0F85 11000000 JNZ CrackMe.0040307A
00403069      837D E8 01    CMP DWORD PTR SS:,1
0040306D   /0F85 07000000 JNZ CrackMe.0040307A
00403073   |B8 01000000   MOV EAX,1
判断变量,MOV EAX,1时 就是注册成功了

00402CB7|> \837D CC 00    CMP DWORD PTR SS:,0
00402CBB|.0F84 0C000000 JE CrackMe.00402CCD
00402CC1|.C745 F4 01000>MOV DWORD PTR SS:,1
赋值变量

00402C89|.83F8 00       CMP EAX,0
00402C8C|.B8 00000000   MOV EAX,0
00402C91|.0F94C0      SETE AL
00402C94|.8945 CC       MOV DWORD PTR SS:,EAX
但前面这段代码 MOV EAX,0
然后0赋值给了 变量
JE CrackMe.00402CCD 这个肯定跳了
那MOV DWORD PTR SS:,1 这个肯定不会执行了
这怎么算下去呢?

女孩不可信 发表于 2010-12-8 01:38

要么楼主代码写错了?要么是我看错了?楼主给个正确的答案 看看?

ssb 发表于 2010-12-8 11:49

应该没错吧!程序分段比较的。
软件爆破很简单,不防爆破,特征码也不参与运算,破解成功的标志是提供一组可以注册成功的注册码即可,另外想检测一下是否存在内存明码比较的漏洞。
提供一组可用于注册的注册码:
用户名:bbyl
注册码:95EA7CAD8A57E8073F6F258FC53AC5694D666620BECB394E12E94ABC45DE127103B00BB80FDF0A88729A8

注册成功后截图:

ssb 发表于 2010-12-8 13:34

本帖最后由 ssb 于 2010-12-8 13:36 编辑

回复 2# lkou

呵呵!这么快就搞定啦!还加vm了吗?是爆破?还是patch?还请指教!

lkou 发表于 2010-12-8 13:55

你内存里面有明码比较,但是MD5了,所以直接爆了标志位

ssb 发表于 2010-12-8 19:56

你内存里面有明码比较,但是MD5了,所以直接爆了标志位
lkou 发表于 2010-12-8 13:55 http://www.52pojie.cn/images/common/back.gif

那请教如何才能避免内存明码比较呢?另外除了vm外还有别的办法防止爆破吗?

yasas 发表于 2010-12-8 20:16

lkou 发表于 2010-12-8 20:28

逆向算法,不是主动算出正确的码,而是用输入码进行逆向就行了,反正么有注册系统的就是杯具,看别人找的到找不到标志位了,爆了你的标志位,你再复杂的算法也没用

VM是个好办法
页: [1] 2
查看完整版本: 第一个作业_CrackMe,欢迎大家指点。