首页
社区
课程
招聘
[旧帖] [求助][求助]PEDIY CrackMe 2007中[序列号-analog]例子的疑问 0.00雪花
发表于: 2007-8-28 16:31 3915

[旧帖] [求助][求助]PEDIY CrackMe 2007中[序列号-analog]例子的疑问 0.00雪花

2007-8-28 16:31
3915
昨日尝试着用OD破解 PEDIY CrackMe 2007 中[序列号-analog]这个例子中的CrackMe---aescul.exe。

发现在OD中地址403038~403183这段代码根例子中破解作者analog所给出的这段地址的反汇编码很不一致,现分别贴出来

我用OD看到的(也换用过PEDIY提供的OLLYICE,看到的也是如此)
00403038   .  33C0          XOR EAX,EAX
0040303A   .  68 93334000   PUSH aescul.00403393
0040303F   .  64:FF30       PUSH DWORD PTR FS:[EAX]
00403042   .  64:8920       MOV DWORD PTR FS:[EAX],ESP
00403045   .  9C            PUSHFD
00403046   .  9C            PUSHFD
00403047   .  58            POP EAX
00403048   .  0D 00010000   OR EAX,100
0040304D   .  50            PUSH EAX
0040304E   .  9D            POPFD
0040304F   .  90            NOP
00403050   .  CC            INT3
00403051   .  2133          AND DWORD PTR DS:[EBX],ESI
00403053   .  00CC          ADD AH,CL
00403055   .  5A            POP EDX
00403056   .  D196 DE96EFFF RCL DWORD PTR DS:[ESI+FFEF96DE],1
0040305C   .  40            INC EAX
0040305D   .  FBEAFDFF      DD FFFDEAFB
00403061      55            DB 55                                    ;  CHAR 'U'
00403062      2A            DB 2A                                    ;  CHAR '*'
00403063      D4            DB D4
00403064      42            DB 42                                    ;  CHAR 'B'
00403065   .  7EEEFDFF      DD FFFDEE7E
00403069      88            DB 88
0040306A   .  515EBFFF      DD FFBF5E51
0040306E      D5            DB D5
0040306F      DF            DB DF
00403070      CC            INT3
00403071      C7            DB C7
00403072      C1            DB C1
00403073   .  FD            STD
00403074   .  7C 3E         JL SHORT aescul.004030B4
00403076   .  C3            RETN
00403077      B8            DB B8
00403078   >  04 FF         ADD AL,0FF
0040307A      FF            DB FF
0040307B      FF            DB FF
0040307C      77            DB 77                                    ;  CHAR 'w'
0040307D      F1            DB F1
0040307E      D5            DB D5
0040307F      9F            DB 9F
00403080      CC            INT3
00403081      8F            DB 8F
00403082      87            DB 87
00403083      78            DB 78                                    ;  CHAR 'x'
00403084      74            DB 74                                    ;  CHAR 't'
00403085      7C            DB 7C                                    ;  CHAR '|'
00403086      5C            DB 5C                                    ;  CHAR '\'
00403087      7A            DB 7A                                    ;  CHAR 'z'
00403088      FF            DB FF
00403089      FF            DB FF
0040308A      FF            DB FF
0040308B      BB            DB BB
0040308C      B8            DB B8
0040308D      FD            DB FD
0040308E      86            DB 86
0040308F      05            DB 05
00403090      2A            DB 2A                                    ;  CHAR '*'
00403091      37            DB 37                                    ;  CHAR '7'
00403092      1F            DB 1F
00403093      1C            DB 1C
00403094      FD            DB FD
00403095      89            DB 89
00403096      44            DB 44                                    ;  CHAR 'D'
00403097      54            DB 54                                    ;  CHAR 'T'
00403098      73            DB 73                                    ;  CHAR 's'
00403099      99            DB 99
0040309A      42            DB 42                                    ;  CHAR 'B'
0040309B      3A            DB 3A                                    ;  CHAR ':'
0040309C      79            DB 79                                    ;  CHAR 'y'
0040309D   .  8AF6FDFF      DD FFFDF68A
004030A1      8E            DB 8E
004030A2      58            DB 58                                    ;  CHAR 'X'
004030A3   .  FEBA7FFF      DD FF7FBAFE
004030A7      26            DB 26                                    ;  CHAR '&'
004030A8   .  C3            RETN
004030A9      51            DB 51                                    ;  CHAR 'Q'
004030AA      AE            DB AE
004030AB      3E            DB 3E                                    ;  CHAR '>'
004030AC      39            DB 39                                    ;  CHAR '9'
004030AD      F7            DB F7
004030AE      D1            DB D1
004030AF      CB            DB CB
004030B0   .  54B7EFFF      DD FFEFB754
004030B4   >^ 74 C2         JE SHORT aescul.00403078
004030B6   .  F7D5FBFF      DD FFFBD5F7
004030BA      31            DB 31                                    ;  CHAR '1'
004030BB      1E            DB 1E
004030BC      8A            DB 8A
004030BD      9B            DB 9B
004030BE      F1            DB F1
004030BF      C9            DB C9
004030C0      BF            DB BF
004030C1      8E            DB 8E
004030C2      5E            DB 5E                                    ;  CHAR '^'
004030C3   .  A2BD7FFF      DD FF7FBDA2
004030C7      A3            DB A3
004030C8      16            DB 16
004030C9   .  BFAEDFFF      DD FFDFAEBF
004030CD      89            DB 89
004030CE      F0            DB F0
004030CF      54            DB 54                                    ;  CHAR 'T'
004030D0      0E            DB 0E
004030D1      8F            DB 8F
004030D2      4E            DB 4E                                    ;  CHAR 'N'
004030D3      FD            DB FD
004030D4      74            DB 74                                    ;  CHAR 't'
004030D5      F2            DB F2
004030D6   .  15EDFBFF      DD FFFBED15
004030DA      1D            DB 1D
004030DB      B0            DB B0
004030DC   .  FD75FEFF      DD FFFE75FD
004030E0      4C            DB 4C                                    ;  CHAR 'L'
004030E1      87            DB 87
004030E2      A2            DB A2
004030E3      F9            DB F9
004030E4      38            DB 38                                    ;  CHAR '8'
004030E5      F5            DB F5
004030E6   .  34DDFBFF      DD FFFBDD34
004030EA      BF            DB BF
004030EB      FF            DB FF
004030EC      FF            DB FF
004030ED      FF            DB FF
004030EE      50            DB 50                                    ;  CHAR 'P'
004030EF      AF            DB AF
004030F0      83            DB 83
004030F1      5F            DB 5F                                    ;  CHAR '_'
004030F2   .  43DDBFFF      DD FFBFDD43
004030F6      FF            DB FF
004030F7      FF            DB FF
004030F8      FF            DB FF
004030F9      FF            DB FF
004030FA      98            DB 98
004030FB      66            DB 66                                    ;  CHAR 'f'
004030FC      3F            DB 3F                                    ;  CHAR '?'
004030FD      37            DB 37                                    ;  CHAR '7'
004030FE      C1            DB C1
004030FF      FF            DB FF
00403100      C7            DB C7
00403101      67            DB 67                                    ;  CHAR 'g'
00403102      FE            DB FE
00403103      3E            DB 3E                                    ;  CHAR '>'
00403104      C2            DB C2
00403105   .  1AEEFDFF      DD FFFDEE1A
00403109      DF            DB DF
0040310A      A2            DB A2
0040310B      75            DB 75                                    ;  CHAR 'u'
0040310C      95            DB 95
0040310D      7F            DB 7F
0040310E      5E            DB 5E                                    ;  CHAR '^'
0040310F   .  16FBF7FF      DD FFF7FB16
00403113      CB            DB CB
00403114   .  547DFEFF      DD FFFE7D54
00403118      59            DB 59                                    ;  CHAR 'Y'
00403119      FF            DB FF
0040311A      C5            DB C5
0040311B      AB            DB AB
0040311C      FC            DB FC
0040311D      FF            DB FF
0040311E      FF            DB FF
0040311F      A0            DB A0
00403120      CE            DB CE
00403121      B2            DB B2
00403122      F3            DB F3
00403123      CB            DB CB
00403124   .  AF7FFEFF      DD FFFE7FAF
00403128      79            DB 79                                    ;  CHAR 'y'
00403129   .  35EFDFFF      DD FFDFEF35
0040312D      2B            DB 2B                                    ;  CHAR '+'
0040312E      FF            DB FF
0040312F      B8            DB B8
00403130      C6            DB C6
00403131      9F            DB 9F
00403132      FF            DB FF
00403133      FF            DB FF
00403134      95            DB 95
00403135      FF            DB FF
00403136      5C            DB 5C                                    ;  CHAR '\'
00403137      B9            DB B9
00403138      CF            DB CF
00403139      FF            DB FF
0040313A      FF            DB FF
0040313B      3B            DB 3B                                    ;  CHAR ';'
0040313C      CA            DB CA
0040313D   .  22EEFDFF      DD FFFDEE22
00403141      8E            DB 8E
00403142      BA            DB BA
00403143   .  8ABB7FFF      DD FF7FBB8A
00403147      A3            DB A3
00403148      2F            DB 2F                                    ;  CHAR '/'
00403149   .  23EEDFFF      DD FFDFEE23
0040314D      89            DB 89
0040314E      B8            DB B8
0040314F      6C            DB 6C                                    ;  CHAR 'l'
00403150      DF            DB DF
00403151      99            DB 99
00403152      4B            DB 4B                                    ;  CHAR 'K'
00403153      78            DB 78                                    ;  CHAR 'x'
00403154      41            DB 41                                    ;  CHAR 'A'
00403155      17            DB 17
00403156   .  AB            STOS DWORD PTR ES:[EDI]
00403157   .  FFE7          JMP EDI
00403159      23            DB 23                                    ;  CHAR '#'
0040315A      3C            DB 3C                                    ;  CHAR '<'
0040315B      FF            DB FF
0040315C      FF            DB FF
0040315D      FE            DB FE
0040315E      1A            DB 1A
0040315F      D7            DB D7
00403160      1B            DB 1B
00403161      8F            DB 8F
00403162      4C            DB 4C                                    ;  CHAR 'L'
00403163      87            DB 87
00403164      B9            DB B9
00403165      89            DB 89
00403166      3C            DB 3C                                    ;  CHAR '<'
00403167      5C            DB 5C                                    ;  CHAR '\'
00403168      6F            DB 6F                                    ;  CHAR 'o'
00403169      B7            DB B7
0040316A   .  3117          XOR DWORD PTR DS:[EDI],EDX
0040316C   .  833433 69     XOR DWORD PTR DS:[EBX+ESI],69
00403170   .  41            INC ECX
00403171   .  C3            RETN
00403172      9D            DB 9D
00403173      75            DB 75                                    ;  CHAR 'u'
00403174   .  1577FEFF      DD FFFE7715
00403178      47            DB 47                                    ;  CHAR 'G'
00403179      59            DB 59                                    ;  CHAR 'Y'
0040317A   .  44DDBFFF      DD FFBFDD44
0040317E   .  C3            RETN
0040317F      0A            DB 0A
00403180      BF            DB BF
00403181      BA            DB BA
00403182      6F            DB 6F                                    ;  CHAR 'o'
00403183   .  1E            PUSH DS

例子中analog所给出的反汇编代码
00403038   |.  33C0            xor eax,eax
0040303A   |.  68 93334000     push aescul.00403393
0040303F   |.  64:FF30         push dword ptr fs:[eax]
00403042   |.  64:8920         mov dword ptr fs:[eax],esp
00403045   |.  9C              pushfd
00403046   |.  9C              pushfd
00403047   |.  58              pop eax                              ;  eax=246H
00403048   |.  0D 00010000     or eax,100                           ;  eax=346H
0040304D   |.  50              push eax
0040304E   |.  9D              popfd
0040304F   |.  90              nop
00403050   |.  33F6            xor esi,esi                          ;  清空寄存器
00403052   |.  33FF            xor edi,edi                          ;  清空寄存器
00403054   |.  33D2            xor edx,edx                          ;  清空寄存器
00403056   |.  8B2D 124B4000   mov ebp,dword ptr ds:[404B12]        ;  循环次数24
0040305C   |.  BF 02454000     mov edi,aescul.00404502              ;  变换后的正确注册码的地址
00403061   |>  55              /push ebp
00403062   |.  57              |push edi
00403063   |.  56              |push esi
00403064   |.  BD C0444000     |mov ebp,aescul.004044C0             ;  ASCII "0I5LZ7G123RXCV9OPAS6TBN48YUHJKDF0QWEM"(字符串2)
00403069   |.  BB BA434000     |mov ebx,aescul.004043BA             ;  ASCII "WS55661-640-0059266-23364"
0040306E   |.  8A0433          |mov al,byte ptr ds:[ebx+esi]        ;  取"WS"+ProductID的一个字节放到al
00403071   |.  C1F8 04         |sar eax,4                           ;  eax算术右移4次
00403074   |.  83E0 0F         |and eax,0F                          ;  eax和0F做与运算(取该字节的高四位)
00403077   |.  E8 BF000000     |call aescul.0040313B
0040307C   |.  8807            |mov byte ptr ds:[edi],al
0040307E   |.  8A0C33          |mov cl,byte ptr ds:[ebx+esi]        ;  取"WS"+ProduceID的一个字节放到cl
00403081   |.  83E1 0F         |and ecx,0F                          ;  取ecx的低四位(取该字节的低四位)
00403084   |.  8BC1            |mov eax,ecx                         ;  移动到eax
00403086   |.  E8 B0000000     |call aescul.0040313B
0040308B   |.  8847 01         |mov byte ptr ds:[edi+1],al
0040308E   |.  5E              |pop esi
0040308F   |.  5F              |pop edi
00403090   |.  5D              |pop ebp
00403091   |.  46              |inc esi
00403092   |.  83C7 02         |add edi,2
00403095   |.  3BEE            |cmp ebp,esi
00403097   |.^ 75 C8           \jnz short aescul.00403061
00403099   |.  33F6            xor esi,esi                          ;  下面依次取码比较
0040309B   |.  8B86 BA424000   mov eax,dword ptr ds:[esi+4042BA]    ;  注册码
004030A1   |.  8B9E 02454000   mov ebx,dword ptr ds:[esi+404502]    ;  变化后的字符串
004030A7       3BC0            cmp eax,eax                          ;  第一次比较
004030A9   |.  75 45           jnz short aescul.004030F0
004030AB   |.  83C6 04         add esi,4
004030AE   |.  8B86 BA424000   mov eax,dword ptr ds:[esi+4042BA]
004030B4   |.  8B9E 02454000   mov ebx,dword ptr ds:[esi+404502]
004030BA   |.  3BC3            cmp eax,ebx                          ;  第二次比较
004030BC       74 32           je short aescul.004030F0             ;  不一样则跳
004030BE   |.  83C6 04         add esi,4
004030C1   |.  8B86 BA424000   mov eax,dword ptr ds:[esi+4042BA]
004030C7   |.  8B9E 02454000   mov ebx,dword ptr ds:[esi+404502]
004030CD   |.  3BC3            cmp eax,ebx                          ;  第三次比较
004030CF       74 1F           je short aescul.004030F0             ;  不一样则跳
004030D1   |.  83C6 04         add esi,4
004030D4   |.  8B86 BA424000   mov eax,dword ptr ds:[esi+4042BA]
004030DA   |.  8B9E 02454000   mov ebx,dword ptr ds:[esi+404502]    
004030E0   |.  3BC3            cmp eax,ebx                          ;  第四次比较
004030E2       74 0C           je short aescul.004030F0             ;  不一样则跳
004030E4   |.  C705 F2444000 0>mov dword ptr ds:[4044F2],1          ;  注册成功标志置1
004030EE   |.  EB 0A           jmp short aescul.004030FA
004030F0   |>  C705 F2444000 0>mov dword ptr ds:[4044F2],0          ;  置0(表示注册失败)
004030FA   |>  9D              popfd
004030FB   |.  33C0            xor eax,eax
004030FD   |.  64:8F00         pop dword ptr fs:[eax]
00403100   |.  83C4 04         add esp,4
00403103   |.  833D F2444000 0>cmp dword ptr ds:[4044F2],1          ;  时否成功
0040310A   |.  75 15           jnz short aescul.00403121
0040310C   |.  6A 40           push 40                              ; /Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
0040310E   |.  68 3D404000     push aescul.0040403D                 ; |Title = "Congratulations..."
00403113   |.  68 AB414000     push aescul.004041AB                 ; |Text = "Registered to: yuchao"
00403118   |.  6A 00           push 0                               ; |hOwner = NULL
0040311A   |.  E8 A8030000     call <jmp.&USER32.MessageBoxA>       ; \MessageBoxA ;注册成功
0040311F   |.  EB 13           jmp short aescul.00403134
00403121   |>  6A 30           push 30                              ; /Style = MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL
00403123   |.  68 50404000     push aescul.00404050                 ; |Title = "Error"
00403128   |.  68 56404000     push aescul.00404056                 ; |Text = "Wrong Serial Number!"
0040312D   |.  6A 00           push 0                               ; |hOwner = NULL
0040312F   |.  E8 93030000     call <jmp.&USER32.MessageBoxA>       ; \MessageBoxA ;注册失败
00403134   |>  6A 00           push 0                               ; /ExitCode = 0
00403136   \.  E8 C8030000     call <jmp.&KERNEL32.ExitProcess>     ; \ExitProcess
0040313B   /$  8935 EE444000   mov dword ptr ds:[4044EE],esi
00403141   |.  8B15 EA444000   mov edx,dword ptr ds:[4044EA]        ;  读出上次保存的位置记录
00403147   |.  8B0D E6444000   mov ecx,dword ptr ds:[4044E6]        ;  字符串长度37
0040314D   |.  3BD1            cmp edx,ecx                          ;  上次call时有没有遍历完字符串
0040314F   |.  72 02           jb short aescul.00403153             ;  遍历完了则重新遍历
00403151   |.  33D2            xor edx,edx
00403153   |>  0FBE7415 00     /movsx esi,byte ptr ss:[ebp+edx]     ;  取字符串2的字节
00403158   |.  81E6 0F000080   |and esi,8000000F                    ;  取esi的低四位
0040315E   |.  79 05           |jns short aescul.00403165           ;  符号位为0时跳
00403160   |.  4E              |dec esi
00403161   |.  83CE F0         |or esi,FFFFFFF0
00403164   |.  46              |inc esi
00403165   |>  3BF0            |cmp esi,eax                         ;  找到与eax相等的esi
00403167   |.  74 09           |je short aescul.00403172            ;  跳出
00403169   |.  42              |inc edx                             ;  计数器加1
0040316A   |.  3BD1            |cmp edx,ecx                         ;  是否循环了37次
0040316C   |.^ 7C E5           |jl short aescul.00403153            ;  没到则跳回
0040316E   |.  33D2            |xor edx,edx                         ;  清edx
00403170   |.^ EB E1           \jmp short aescul.00403153           ;  跳回去再次遍历(字符串2)
00403172   |>  8915 EA444000   mov dword ptr ds:[4044EA],edx        ;  把所找到的位置记录下
00403178   |.  8B35 EE444000   mov esi,dword ptr ds:[4044EE]
0040317E   |.  0FBE042A        movsx eax,byte ptr ds:[edx+ebp]      ;  取那个字节
00403182   |.  42              inc edx
00403183   \.  C3              retn

因为我才刚刚接触破解,也是刚刚才接触OD这个软件,不明白为什么会出现这种情况,故发此贴求助于各位,万望释疑。

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

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你右键   在反汇编窗口中  分析->从模块中删除分析
然后就看到了
2007-8-28 17:38
0
雪    币: 123
活跃值: (95)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
你不会是想要OD帮你分析了把后面的注释也自动添加上去吧?这个是自己开反汇编代码加上去的.
2007-8-28 19:40
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感谢bwin的帮助,现在已经显示正常了,谢谢
2007-8-28 23:32
0
游客
登录 | 注册 方可回帖
返回
//