首页
社区
课程
招聘
[讨论]刚刚写的CRACK ME(一切都为了学习)
发表于: 2010-12-11 16:02 8730

[讨论]刚刚写的CRACK ME(一切都为了学习)

2010-12-11 16:02
8730
再试试,这次我把得到的注册码在软件里做了运算,提示注册成功,但是在内存得到的注册码是假码。在软件里是不认得。呵呵

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (19)
雪    币: 3076
活跃值: (3634)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
0040197B   .  84C0          test al,al
注册的时候在这地址下断就能在堆栈看到注册码了饿
2010-12-11 16:20
0
雪    币: 184
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
OD里都查不到字符串你怎么知道在0040197B   .  84C0          test al,al下断啊,晕
2010-12-11 16:26
0
雪    币: 184
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
主要是想学习思路。呵呵
2010-12-11 16:28
0
雪    币: 1149
活跃值: (888)
能力值: ( LV13,RANK:260 )
在线值:
发帖
回帖
粉丝
5
  正确的  注册是什么 是这么 为什么说 你的字符串看不到?  有什么 玄机吗。。。。。
这是神马:
上传的附件:
2010-12-11 16:33
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
注册验证在OpExport.dll中,爆破也在那里
对注册码进行了md5,可惜是明码比较
上传的附件:
2010-12-11 16:39
0
雪    币: 184
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
晕,我要的破文,求解。。。。。。。。。
2010-12-11 16:45
0
雪    币: 1149
活跃值: (888)
能力值: ( LV13,RANK:260 )
在线值:
发帖
回帖
粉丝
8
你的字符穿 怎么创建的  。。应该是没有注意。。。其实 跟到里面去 看到md5  我就知道 行为在dll 中实现注册的全过程。。。
好好 处理一下字符串  ,在弄出来 其实 还是不错的。。。
2010-12-11 16:58
0
雪    币: 184
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
嗯,我明白。
我是搞GPS卫星定位的。软件不希望轻易破解,这个是注册的台数限制,我想到的只有把字符串隐藏,进行MD5。但是还是被你破了。呵呵。
2010-12-11 17:09
0
雪    币: 184
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
另外我也想接触下破解的东西。所以希望你发份破文给我,还有,你怎么在OD里找到的断点
2010-12-11 17:12
0
雪    币: 1149
活跃值: (888)
能力值: ( LV13,RANK:260 )
在线值:
发帖
回帖
粉丝
11
直接 查字符串 看到的呀。。。你最后 为什么 判断不成功还把 正确的 密码 现在内存中 你分成 四段 算出 注册码。。。
具体 怎么算的,这个 要看看,先吃饭去了。。。
上传的附件:
  • 3.jpg (4.92kb,273次下载)
2010-12-11 17:38
0
雪    币: 544
活跃值: (55)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
软件的MD5算法好像是把四个常数给修改了。
四个常数为:
1000F1DA    C701 01244567   MOV DWORD PTR DS:[ECX],67452401
1000F1E0    C741 04 89ABC31>MOV DWORD PTR DS:[ECX+4],10C3AB89
1000F1E7    C741 08 FE6CBA9>MOV DWORD PTR DS:[ECX+8],98BA6CFE
1000F1EE    C741 0C 7621351>MOV DWORD PTR DS:[ECX+C],10352176
注册算法是:将系统唯一识别码进行几次符点运算。我的识别码为118016855。
                  然后通过4次算法,得到注册码的4部分。每次算4位,(这部分没仔细看)。
0012EE34   003F4B40  ASCII "TOEV"
0012EE38   003F4F88  ASCII "GHJF"
0012EE3C   003F5678  ASCII "WJRA"
0012EE40   003F7710  ASCII "XEQV"
EAX 003F79A0 ASCII "TOEVGHJFWJRAXEQV" 记为s2
仔细观察:
数据窗口。就看到了某些地方了。我输入的假码是:12345678ABCDEFGH,算完第一步我的1234就变成真码TOEV了
MD5'(输入的16位假码)==MD5'(s2)
PS:感觉将两者先大写再比较,这步有点啰嗦了,完全没有意义。
上传的附件:
  • 2.jpg (85.72kb,270次下载)
2010-12-11 18:07
0
雪    币: 303
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
10005973    50               PUSH EAX
10005974    50               PUSH EAX
10005975    8D5424 28        LEA EDX,DWORD PTR SS:[ESP+28]
10005979    52               PUSH EDX
1000597A    6A 0C            PUSH 0C
1000597C    50               PUSH EAX
1000597D    68 681A0210      PUSH OpExport.10021A68                                         ; ASCII "c:\"
10005982    FF15 74100210    CALL DWORD PTR DS:[<&KERNEL32.GetVolumeInformationA>]          ; kernel32.GetVolumeInformationA
10005988    8B4424 18        MOV EAX,DWORD PTR SS:[ESP+18]
1000598C    8D4C24 24        LEA ECX,DWORD PTR SS:[ESP+24]
10005990    51               PUSH ECX
10005991    35 10270000      XOR EAX,2710
10005996    68 10270000      PUSH 2710
1000599B    50               PUSH EAX
1000599C    894424 24        MOV DWORD PTR SS:[ESP+24],EAX
100059A0    E8 4BDEFFFF      CALL OpExport.100037F0

100037F0    83EC 18          SUB ESP,18
100037F3    57               PUSH EDI
100037F4    8B7C24 28        MOV EDI,DWORD PTR SS:[ESP+28]
100037F8    85FF             TEST EDI,EDI
100037FA    75 07            JNZ SHORT OpExport.10003803
100037FC    32C0             XOR AL,AL
100037FE    5F               POP EDI
100037FF    83C4 18          ADD ESP,18
10003802    C3               RETN
10003803    53               PUSH EBX
10003804    55               PUSH EBP
10003805    56               PUSH ESI
10003806    8BF7             MOV ESI,EDI
10003808    BB 04000000      MOV EBX,4
1000380D    8D49 00          LEA ECX,DWORD PTR DS:[ECX]
10003810    8BCE             MOV ECX,ESI
10003812    FF15 C0110210    CALL DWORD PTR DS:[<&MFC71.#2131>]                             ; MFC71.7C173133
10003818    83C6 04          ADD ESI,4
1000381B    4B               DEC EBX
1000381C  ^ 75 F2            JNZ SHORT OpExport.10003810
1000381E    8B4C24 2C        MOV ECX,DWORD PTR SS:[ESP+2C]
10003822    8BC1             MOV EAX,ECX
10003824    0FAFC1           IMUL EAX,ECX
10003827    8BD0             MOV EDX,EAX
10003829    0FAFD0           IMUL EDX,EAX
1000382C    85C9             TEST ECX,ECX
1000382E    8D4424 34        LEA EAX,DWORD PTR SS:[ESP+34]
10003832    895424 18        MOV DWORD PTR SS:[ESP+18],EDX
10003836    50               PUSH EAX
10003837    8D5424 14        LEA EDX,DWORD PTR SS:[ESP+14]
1000383B    52               PUSH EDX
1000383C    894C24 1C        MOV DWORD PTR SS:[ESP+1C],ECX
10003840    6A 0B            PUSH 0B
10003842    DB4424 20        FILD DWORD PTR SS:[ESP+20]
10003846    7D 06            JGE SHORT OpExport.1000384E
10003848    DC05 28180210    FADD QWORD PTR DS:[10021828]
1000384E    D9FA             FSQRT
10003850    8B35 7C130210    MOV ESI,DWORD PTR DS:[<&MSVCR71._ecvt>]                        ; MSVCR71._ecvt
10003856    83EC 08          SUB ESP,8
10003859    DC0D 20180210    FMUL QWORD PTR DS:[10021820]
1000385F    DC05 18180210    FADD QWORD PTR DS:[10021818]
10003865    DD1C24           FSTP QWORD PTR SS:[ESP]
10003868    FFD6             CALL ESI
1000386A    8B1D 80130210    MOV EBX,DWORD PTR DS:[<&MSVCR71._atoi64>]                      ; MSVCR71._atoi64
10003870    50               PUSH EAX
10003871    FFD3             CALL EBX
10003873    83C4 18          ADD ESP,18
10003876    85C0             TEST EAX,EAX
10003878    8D4C24 34        LEA ECX,DWORD PTR SS:[ESP+34]
1000387C    51               PUSH ECX
1000387D    8D5424 14        LEA EDX,DWORD PTR SS:[ESP+14]
10003881    52               PUSH EDX
10003882    894424 1C        MOV DWORD PTR SS:[ESP+1C],EAX
10003886    DB4424 1C        FILD DWORD PTR SS:[ESP+1C]
1000388A    894424 24        MOV DWORD PTR SS:[ESP+24],EAX
1000388E    6A 0B            PUSH 0B
10003890    7D 06            JGE SHORT OpExport.10003898
10003892    DC05 28180210    FADD QWORD PTR DS:[10021828]
10003898    D9FA             FSQRT
1000389A    83EC 08          SUB ESP,8
1000389D    DC0D 20180210    FMUL QWORD PTR DS:[10021820]
100038A3    DC05 18180210    FADD QWORD PTR DS:[10021818]
100038A9    DD1C24           FSTP QWORD PTR SS:[ESP]
100038AC    FFD6             CALL ESI
100038AE    50               PUSH EAX
100038AF    FFD3             CALL EBX
100038B1    83C4 18          ADD ESP,18
100038B4    85C0             TEST EAX,EAX
100038B6    8D4C24 34        LEA ECX,DWORD PTR SS:[ESP+34]
100038BA    51               PUSH ECX
100038BB    8D5424 14        LEA EDX,DWORD PTR SS:[ESP+14]
100038BF    52               PUSH EDX
100038C0    894424 1C        MOV DWORD PTR SS:[ESP+1C],EAX
100038C4    DB4424 1C        FILD DWORD PTR SS:[ESP+1C]
100038C8    894424 28        MOV DWORD PTR SS:[ESP+28],EAX
100038CC    6A 0B            PUSH 0B
100038CE    7D 06            JGE SHORT OpExport.100038D6
100038D0    DC05 28180210    FADD QWORD PTR DS:[10021828]
100038D6    D9FA             FSQRT
100038D8    83EC 08          SUB ESP,8
100038DB    DC0D 20180210    FMUL QWORD PTR DS:[10021820]
100038E1    DC05 18180210    FADD QWORD PTR DS:[10021818]
100038E7    DD1C24           FSTP QWORD PTR SS:[ESP]
100038EA    FFD6             CALL ESI
100038EC    50               PUSH EAX
100038ED    FFD3             CALL EBX
100038EF    8D6C24 30        LEA EBP,DWORD PTR SS:[ESP+30]
100038F3    83C4 18          ADD ESP,18
100038F6    894424 24        MOV DWORD PTR SS:[ESP+24],EAX
100038FA    2BEF             SUB EBP,EDI
100038FC    C74424 14 040000>MOV DWORD PTR SS:[ESP+14],4
10003904    8B1C2F           MOV EBX,DWORD PTR DS:[EDI+EBP]
10003907    33F6             XOR ESI,ESI
10003909    8DA424 00000000  LEA ESP,DWORD PTR SS:[ESP]
10003910    8BCE             MOV ECX,ESI
10003912    B8 FF000000      MOV EAX,0FF
10003917    D3E0             SHL EAX,CL
10003919    33D2             XOR EDX,EDX
1000391B    23C3             AND EAX,EBX
1000391D    D3E8             SHR EAX,CL
1000391F    B9 1A000000      MOV ECX,1A
10003924    F7F1             DIV ECX
10003926    8BCF             MOV ECX,EDI
10003928    80C2 41          ADD DL,41
1000392B    52               PUSH EDX
1000392C    FF15 84110210    CALL DWORD PTR DS:[<&MFC71.#2902>]                             ; MFC71.7C146AB0
10003932    50               PUSH EAX
10003933    8BCF             MOV ECX,EDI
10003935    FF15 BC110210    CALL DWORD PTR DS:[<&MFC71.#3849>]                             ; MFC71.7C189C8A
1000393B    83C6 08          ADD ESI,8
1000393E    83FE 20          CMP ESI,20
10003941  ^ 7C CD            JL SHORT OpExport.10003910
10003943    8B4424 14        MOV EAX,DWORD PTR SS:[ESP+14]
10003947    83C7 04          ADD EDI,4
1000394A    48               DEC EAX
1000394B    894424 14        MOV DWORD PTR SS:[ESP+14],EAX
1000394F  ^ 75 B3            JNZ SHORT OpExport.10003904
10003951    5E               POP ESI
10003952    5D               POP EBP
10003953    5B               POP EBX
10003954    B0 01            MOV AL,1
10003956    5F               POP EDI
10003957    83C4 18          ADD ESP,18
1000395A    C3               RETN

加油。。。
2010-12-11 18:15
0
雪    币: 544
活跃值: (55)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
14
软件不断使用ecvt和atoi64两个函数就换浮点。。。最终生成key的算法在这里。
edx的ascii码就是每一次循环得到的一位key
10003904    8B1C2F          MOV EBX,DWORD PTR DS:[EDI+EBP]           ; 这是重点
10003907    33F6            XOR ESI,ESI
10003909    8DA424 00000000 LEA ESP,DWORD PTR SS:[ESP]
10003910    8BCE            MOV ECX,ESI
10003912    B8 FF000000     MOV EAX,0FF
10003917    D3E0            SHL EAX,CL
10003919    33D2            XOR EDX,EDX
1000391B    23C3            AND EAX,EBX
1000391D    D3E8            SHR EAX,CL
1000391F    B9 1A000000     MOV ECX,1A
10003924    F7F1            DIV ECX
10003926    8BCF            MOV ECX,EDI
10003928    80C2 41         ADD DL,41
1000392B    52              PUSH EDX                                 ; 1111
1000392C    FF15 84110210   CALL DWORD PTR DS:[<&MFC71.#2902>]       ; MFC71.7C146AB0
10003932    50              PUSH EAX
10003933    8BCF            MOV ECX,EDI
10003935    FF15 BC110210   CALL DWORD PTR DS:[<&MFC71.#3849>]       ; 222
1000393B    83C6 08         ADD ESI,8
1000393E    83FE 20         CMP ESI,20                               ; 显然循环4次,共计算4位注册码
10003941  ^ 7C CD           JL SHORT 10003910
10003943    8B4424 14       MOV EAX,DWORD PTR SS:[ESP+14]
10003947    83C7 04         ADD EDI,4
1000394A    48              DEC EAX
1000394B    894424 14       MOV DWORD PTR SS:[ESP+14],EAX
1000394F  ^ 75 B3           JNZ SHORT 10003904
10003951    5E              POP ESI
10003952    5D              POP EBP
10003953    5B              POP EBX
10003954    B0 01           MOV AL,1
10003956    5F              POP EDI
10003957    83C4 18         ADD ESP,18
1000395A    C3              RETN

2010-12-11 18:41
0
雪    币: 184
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
我现在感觉到很垃圾了。呵呵。直接打开OD加载了那个EXE。shift+f7,f8,f9,忽略异常,就可以查到字符串了。直接爆破掉,唉,我得改改,完后再放出来。大家再看看吧。
je      short 004019B3
这里直接修改后成功。看来我得重新修改代码了
2010-12-13 11:05
0
雪    币: 184
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
想问个问题。那个真注册码怎么找到的
2010-12-13 14:03
0
雪    币: 697
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
你用OD跟下就行了
2010-12-14 13:10
0
雪    币: 65
活跃值: (118)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
18
简单的CM,直接明码比较
2010-12-14 13:15
0
雪    币: 184
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
再试试,这次我把得到的注册码在软件里做了运算,提示注册成功,但是在内存得到的注册码是假码。在软件里是不认得。呵呵
2010-12-14 16:52
0
雪    币: 184
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
不让传附件了,呵呵。我再发新帖吧。
2010-12-14 16:54
0
游客
登录 | 注册 方可回帖
返回
//