首页
社区
课程
招聘
逆向pex发现的rc5算法,谁能帮忙看看?
发表于: 2005-1-22 19:01 4094

逆向pex发现的rc5算法,谁能帮忙看看?

2005-1-22 19:01
4094
CODE:00461D30 TBaseCrypt      dd offset @TBaseCrypt@  ; DATA XREF: CODE:004620B4o
CODE:00461D30                                         ; `__vtable__'[TBaseCrypt]
CODE:00461D34                 dd 2 dup(0)
CODE:00461D3C                 dd offset word_461DAC
CODE:00461D40                 dd offset byte_461DD0
CODE:00461D44                 dd 0
CODE:00461D48                 dd 0
CODE:00461D4C                 dd 0
CODE:00461D50                 dd offset aTbasecrypt   ; "TBaseCrypt"
CODE:00461D54                 dd 10084h
CODE:00461D58                 dd offset TComponent
CODE:00461D5C                 dd offset @TComponent@SafeCallException ; TComponent::SafeCallException
CODE:00461D60                 dd offset @TObject@DefaultHandler ; TObject::DefaultHandler
CODE:00461D64                 dd offset @TObject@NewInstance ; TObject::NewInstance
CODE:00461D68                 dd offset @TObject@FreeInstance ; TObject::FreeInstance
CODE:00461D6C                 dd offset @TBaseCrypt@Destroy ; TBaseCrypt::Destroy
CODE:00461D70 ; `__vtable__'[TBaseCrypt]
CODE:00461D70 @TBaseCrypt@    dd offset @TPersistent@AssignTo ; DATA XREF: CODE:TBaseCrypto
CODE:00461D70                                         ; CODE:00461DDCo
CODE:00461D70                                         ; TPersistent::AssignTo
CODE:00461D74                 dd offset DefineProperties
CODE:00461D78                 dd offset @TPersistent@Assign ; TPersistent::Assign
CODE:00461D7C                 dd offset Loaded
CODE:00461D80                 dd offset Notification
CODE:00461D84                 dd offset Exclude
CODE:00461D88                 dd offset sub_416364
CODE:00461D8C                 dd offset ValidateRename
CODE:00461D90                 dd offset sub_4161E4
CODE:00461D94                 dd offset @TComponent@Create ; TComponent::Create
CODE:00461D98                 dd offset @@AbstractError ; __linkproc__ AbstractError
CODE:00461D9C                 dd offset @@AbstractError ; __linkproc__ AbstractError
CODE:00461DA0                 dd offset @@AbstractError ; __linkproc__ AbstractError
CODE:00461DA4                 dd offset sub_461EC4
CODE:00461DA8                 dd offset sub_461ED8
CODE:00461DAC word_461DAC     dw 0Eh                  ; DATA XREF: CODE:00461D3Co
CODE:00461DAE                 dd 0, 1
CODE:00461DB6                 dd offset String
CODE:00461DBA                 dd 24h
CODE:00461DBE aTbasecrypt     db 10,'TBaseCrypt'      ; DATA XREF: CODE:00461D50o

CODE:00461DCC ; BaseCrypt::TBaseCrypt
CODE:00461DCC @BaseCrypt@TBaseCrypt dd offset byte_461DD0 ; DATA XREF: CODE:0046211Eo
CODE:00461DD0 byte_461DD0     db 7                    ; DATA XREF: CODE:00461D40o
CODE:00461DD0                                         ; CODE:BaseCrypt::TBaseCrypto
CODE:00461DD1                 db 10,'TBaseCrypt'
CODE:00461DDC                 dd offset @TBaseCrypt@  ; `__vtable__'[TBaseCrypt]
CODE:00461DE0                 dd offset @Classes@TComponent ; Classes::TComponent
CODE:00461DE4                 dw 4
CODE:00461DE6                 db 9,'BaseCrypt'
CODE:00461DF0                 dw 2
CODE:00461DF2                 dd offset String
CODE:00461DF6                 dd 0
CODE:00461DFA                 dd 0FF000024h
CODE:00461DFE                 dd 0
CODE:00461E02                 dd 80000000h
CODE:00461E06                 dd 80000000h
CODE:00461E0A                 dw 2
CODE:00461E0C                 db 3,'Key'
CODE:00461E10                 dd offset Word
CODE:00461E14                 dd 0FF000030h
CODE:00461E18                 dd 0FF000030h
CODE:00461E1C                 dd 1
CODE:00461E20                 dd 80000000h
CODE:00461E24                 dd 80000000h
CODE:00461E28                 dw 3
CODE:00461E2A                 db 11,'InputLength'

CODE:00461E68 sub_461E68      proc near               ; CODE XREF: sub_461E88+12p
CODE:00461E68 var_5           = byte ptr -5
CODE:00461E68 var_4           = dword ptr -4
CODE:00461E68                 push    ebp
CODE:00461E69                 mov     ebp, esp
CODE:00461E6B                 add     esp, -8
CODE:00461E6E                 mov     [ebp+var_5], dl
CODE:00461E71                 mov     [ebp+var_4], eax
CODE:00461E74                 cmp     [ebp+var_5], 0
CODE:00461E78                 jnz     short loc_461E82
CODE:00461E7A                 mov     eax, [ebp+var_4]
CODE:00461E7D                 mov     edx, [eax]
CODE:00461E7F                 call    dword ptr [edx+30h]
CODE:00461E82 loc_461E82:                             ; CODE XREF: sub_461E68+10j
CODE:00461E82                 pop     ecx
CODE:00461E83                 pop     ecx
CODE:00461E84                 pop     ebp
CODE:00461E85                 retn
CODE:00461E85 sub_461E68      endp

CODE:00461E88 sub_461E88      proc near               ; CODE XREF: sub_5799FC+75p
CODE:00461E88 var_5           = byte ptr -5
CODE:00461E88 var_4           = dword ptr -4
CODE:00461E88                 push    ebp
CODE:00461E89                 mov     ebp, esp
CODE:00461E8B                 add     esp, -8
CODE:00461E8E                 mov     [ebp+var_5], dl
CODE:00461E91                 mov     [ebp+var_4], eax
CODE:00461E94                 mov     dl, [ebp+var_5]
CODE:00461E97                 mov     eax, [ebp+var_4]
CODE:00461E9A                 call    sub_461E68
CODE:00461E9F                 mov     eax, [ebp+var_4]
CODE:00461EA2                 movzx   ecx, word ptr [eax+30h]
CODE:00461EA6                 mov     eax, [ebp+var_4]
CODE:00461EA9                 lea     edx, [eax+32h]
CODE:00461EAC                 mov     eax, [ebp+var_4]
CODE:00461EAF                 mov     eax, [eax+28h]
CODE:00461EB2                 call    @Move
CODE:00461EB7                 mov     eax, [ebp+var_4]
CODE:00461EBA                 mov     edx, [eax]
CODE:00461EBC                 call    dword ptr [edx+34h]
CODE:00461EBF                 pop     ecx
CODE:00461EC0                 pop     ecx
CODE:00461EC1                 pop     ebp
CODE:00461EC2                 retn
CODE:00461EC2 sub_461E88      endp

CODE:00461EC4 sub_461EC4      proc near               ; DATA XREF: CODE:00461DA4o
CODE:00461EC4                                         ; CODE:00462100o
CODE:00461EC4 var_4           = dword ptr -4
CODE:00461EC4                 push    ebp
CODE:00461EC5                 mov     ebp, esp
CODE:00461EC7                 push    ecx
CODE:00461EC8                 mov     [ebp+var_4], eax
CODE:00461ECB                 mov     eax, [ebp+var_4]
CODE:00461ECE                 call    sub_461EEC
CODE:00461ED3                 pop     ecx
CODE:00461ED4                 pop     ebp
CODE:00461ED5                 retn
CODE:00461ED5 sub_461EC4      endp

CODE:00461ED8 sub_461ED8      proc near               ; DATA XREF: CODE:00461DA8o
CODE:00461ED8                                         ; CODE:00462104o
CODE:00461ED8 var_4           = dword ptr -4
CODE:00461ED8                 push    ebp
CODE:00461ED9                 mov     ebp, esp
CODE:00461EDB                 push    ecx
CODE:00461EDC                 mov     [ebp+var_4], eax
CODE:00461EDF                 mov     eax, [ebp+var_4]
CODE:00461EE2                 call    sub_461FA0
CODE:00461EE7                 pop     ecx
CODE:00461EE8                 pop     ebp
CODE:00461EE9                 retn
CODE:00461EE9 sub_461ED8      endp

CODE:00461EEC sub_461EEC      proc near               ; CODE XREF: sub_461EC4+Ap
CODE:00461EEC var_6           = word ptr -6
CODE:00461EEC var_4           = dword ptr -4
CODE:00461EEC                 push    ebp
CODE:00461EED                 mov     ebp, esp
CODE:00461EEF                 add     esp, -8
CODE:00461EF2                 push    ebx
CODE:00461EF3                 mov     [ebp+var_4], eax
CODE:00461EF6                 jmp     short loc_461F0E
CODE:00461EF8 loc_461EF8:                             ; CODE XREF: sub_461EEC+3Aj
CODE:00461EF8                 mov     eax, [ebp+var_4]
CODE:00461EFB                 movzx   eax, word ptr [eax+30h]
CODE:00461EFF                 mov     edx, [ebp+var_4]
CODE:00461F02                 mov     byte ptr [edx+eax+32h], 0
CODE:00461F07                 mov     eax, [ebp+var_4]
CODE:00461F0A                 inc     word ptr [eax+30h]
CODE:00461F0E loc_461F0E:                             ; CODE XREF: sub_461EEC+Aj
CODE:00461F0E                 mov     eax, [ebp+var_4]
CODE:00461F11                 movzx   eax, word ptr [eax+30h]
CODE:00461F15                 mov     edx, [ebp+var_4]
CODE:00461F18                 movzx   edx, byte ptr [edx+10082h]
CODE:00461F1F                 mov     ecx, edx
CODE:00461F21                 cdq
CODE:00461F22                 idiv    ecx
CODE:00461F24                 test    edx, edx
CODE:00461F26                 jnz     short loc_461EF8
CODE:00461F28                 mov     [ebp+var_6], 0
CODE:00461F2E loc_461F2E:                             ; CODE XREF: sub_461EEC+ABj
CODE:00461F2E                 mov     eax, [ebp+var_4]
CODE:00461F31                 xor     ecx, ecx
CODE:00461F33                 mov     cl, [eax+10082h]
CODE:00461F39                 mov     eax, [ebp+var_4]
CODE:00461F3C                 lea     edx, [eax+10042h]
CODE:00461F42                 movzx   eax, [ebp+var_6]
CODE:00461F46                 mov     ebx, [ebp+var_4]
CODE:00461F49                 lea     eax, [ebx+eax+32h]
CODE:00461F4D                 call    @Move
CODE:00461F52                 mov     eax, [ebp+var_4]
CODE:00461F55                 mov     edx, [eax]
CODE:00461F57                 call    dword ptr [edx+28h]
CODE:00461F5A                 movzx   eax, [ebp+var_6]
CODE:00461F5E                 mov     edx, [ebp+var_4]
CODE:00461F61                 mov     edx, [edx+2Ch]
CODE:00461F64                 add     edx, eax
CODE:00461F66                 mov     eax, [ebp+var_4]
CODE:00461F69                 xor     ecx, ecx
CODE:00461F6B                 mov     cl, [eax+10082h]
CODE:00461F71                 mov     eax, [ebp+var_4]
CODE:00461F74                 add     eax, 10042h
CODE:00461F79                 call    @Move
CODE:00461F7E                 mov     eax, [ebp+var_4]
CODE:00461F81                 movzx   eax, byte ptr [eax+10082h]
CODE:00461F88                 add     [ebp+var_6], ax
CODE:00461F8C                 mov     ax, [ebp+var_6]
CODE:00461F90                 mov     edx, [ebp+var_4]
CODE:00461F93                 cmp     ax, [edx+30h]
CODE:00461F97                 jnz     short loc_461F2E
CODE:00461F99                 pop     ebx
CODE:00461F9A                 pop     ecx
CODE:00461F9B                 pop     ecx
CODE:00461F9C                 pop     ebp
CODE:00461F9D                 retn
CODE:00461F9D sub_461EEC      endp

CODE:00461FA0 sub_461FA0      proc near               ; CODE XREF: sub_461ED8+Ap
CODE:00461FA0 var_6           = word ptr -6
CODE:00461FA0 var_4           = dword ptr -4
CODE:00461FA0                 push    ebp
CODE:00461FA1                 mov     ebp, esp
CODE:00461FA3                 add     esp, -8
CODE:00461FA6                 push    ebx
CODE:00461FA7                 mov     [ebp+var_4], eax
CODE:00461FAA                 jmp     short loc_461FC2
CODE:00461FAC loc_461FAC:                             ; CODE XREF: sub_461FA0+3Aj
CODE:00461FAC                 mov     eax, [ebp+var_4]
CODE:00461FAF                 movzx   eax, word ptr [eax+30h]
CODE:00461FB3                 mov     edx, [ebp+var_4]
CODE:00461FB6                 mov     byte ptr [edx+eax+32h], 0
CODE:00461FBB                 mov     eax, [ebp+var_4]
CODE:00461FBE                 inc     word ptr [eax+30h]
CODE:00461FC2 loc_461FC2:                             ; CODE XREF: sub_461FA0+Aj
CODE:00461FC2                 mov     eax, [ebp+var_4]
CODE:00461FC5                 movzx   eax, word ptr [eax+30h]
CODE:00461FC9                 mov     edx, [ebp+var_4]
CODE:00461FCC                 movzx   edx, byte ptr [edx+10082h]
CODE:00461FD3                 mov     ecx, edx
CODE:00461FD5                 cdq
CODE:00461FD6                 idiv    ecx
CODE:00461FD8                 test    edx, edx
CODE:00461FDA                 jnz     short loc_461FAC
CODE:00461FDC                 mov     [ebp+var_6], 0
CODE:00461FE2 loc_461FE2:                             ; CODE XREF: sub_461FA0+ABj
CODE:00461FE2                 mov     eax, [ebp+var_4]
CODE:00461FE5                 xor     ecx, ecx
CODE:00461FE7                 mov     cl, [eax+10082h]
CODE:00461FED                 mov     eax, [ebp+var_4]
CODE:00461FF0                 lea     edx, [eax+10042h]
CODE:00461FF6                 movzx   eax, [ebp+var_6]
CODE:00461FFA                 mov     ebx, [ebp+var_4]
CODE:00461FFD                 lea     eax, [ebx+eax+32h]
CODE:00462001                 call    @Move
CODE:00462006                 mov     eax, [ebp+var_4]
CODE:00462009                 mov     edx, [eax]
CODE:0046200B                 call    dword ptr [edx+2Ch]
CODE:0046200E                 movzx   eax, [ebp+var_6]
CODE:00462012                 mov     edx, [ebp+var_4]
CODE:00462015                 mov     edx, [edx+2Ch]
CODE:00462018                 add     edx, eax
CODE:0046201A                 mov     eax, [ebp+var_4]
CODE:0046201D                 xor     ecx, ecx
CODE:0046201F                 mov     cl, [eax+10082h]
CODE:00462025                 mov     eax, [ebp+var_4]
CODE:00462028                 add     eax, 10042h
CODE:0046202D                 call    @Move
CODE:00462032                 mov     eax, [ebp+var_4]
CODE:00462035                 movzx   eax, byte ptr [eax+10082h]
CODE:0046203C                 add     [ebp+var_6], ax
CODE:00462040                 mov     ax, [ebp+var_6]
CODE:00462044                 mov     edx, [ebp+var_4]
CODE:00462047                 cmp     ax, [edx+30h]
CODE:0046204B                 jnz     short loc_461FE2
CODE:0046204D                 pop     ebx
CODE:0046204E                 pop     ecx
CODE:0046204F                 pop     ecx
CODE:00462050                 pop     ebp
CODE:00462051                 retn
CODE:00462051 sub_461FA0      endp

CODE:00462054 ; BaseCrypt::Finalization
CODE:00462054 @BaseCrypt@Finalization proc near       ; DATA XREF: CODE:0059B4DCo
CODE:00462054                 push    ebp
CODE:00462055                 mov     ebp, esp
CODE:00462057                 xor     eax, eax
CODE:00462059                 push    ebp
CODE:0046205A                 push    offset loc_462079
CODE:0046205F                 push    dword ptr fs:[eax]
CODE:00462062                 mov     fs:[eax], esp
CODE:00462065                 inc     ds:dword_5A47D8
CODE:0046206B                 xor     eax, eax
CODE:0046206D                 pop     edx
CODE:0046206E                 pop     ecx
CODE:0046206F                 pop     ecx
CODE:00462070                 mov     fs:[eax], edx
CODE:00462073                 push    offset loc_462080
CODE:00462078 locret_462078:                          ; CODE XREF: BaseCrypt::Finalization+2Aj
CODE:00462078                 retn
CODE:00462079 loc_462079:                             ; DATA XREF: BaseCrypt::Finalization+6o
CODE:00462079                 jmp     @@HandleFinally ; __linkproc__ HandleFinally
CODE:0046207E                 jmp     short locret_462078
CODE:00462080 loc_462080:                             ; CODE XREF: BaseCrypt::Finalization:locret_462078j
CODE:00462080                                         ; DATA XREF: BaseCrypt::Finalization+1Fo
CODE:00462080                 pop     ebp
CODE:00462081                 retn
CODE:00462081 @BaseCrypt@Finalization endp ; sp = -4

CODE:00462084 ; BaseCrypt::Initialization
CODE:00462084 @BaseCrypt@Initialization proc near     ; DATA XREF: CODE:0059B4D8o
CODE:00462084                 sub     ds:dword_5A47D8, 1
CODE:0046208B                 retn
CODE:0046208B @BaseCrypt@Initialization endp

CODE:0046208C TRC5            dd offset @TRC5@        ; DATA XREF: sub_5799FC+2Ar
CODE:0046208C                                         ; `__vtable__'[trc5]
CODE:00462090                 dd 3 dup(0)
CODE:0046209C                 dd offset byte_462114
CODE:004620A0                 dd 3 dup(0)
CODE:004620AC                 dd offset aTrc5_0       ; "TRC5"
CODE:004620B0                 dd 1009Ch
CODE:004620B4                 dd offset TBaseCrypt
CODE:004620B8                 dd offset @TComponent@SafeCallException ; TComponent::SafeCallException
CODE:004620BC                 dd offset @TObject@DefaultHandler ; TObject::DefaultHandler
CODE:004620C0                 dd offset @TObject@NewInstance ; TObject::NewInstance
CODE:004620C4                 dd offset @TObject@FreeInstance ; TObject::FreeInstance
CODE:004620C8                 dd offset @TRC5@Destroy ; TRC5::Destroy
CODE:004620CC ; `__vtable__'[trc5]
CODE:004620CC @TRC5@          dd offset @TPersistent@AssignTo ; DATA XREF: CODE:TRC5o
CODE:004620CC                                         ; CODE:0046211Ao
CODE:004620CC                                         ; TPersistent::AssignTo
CODE:004620D0                 dd offset DefineProperties
CODE:004620D4                 dd offset @TPersistent@Assign ; TPersistent::Assign
CODE:004620D8                 dd offset Loaded
CODE:004620DC                 dd offset Notification
CODE:004620E0                 dd offset Exclude
CODE:004620E4                 dd offset sub_416364
CODE:004620E8                 dd offset ValidateRename
CODE:004620EC                 dd offset sub_4161E4
CODE:004620F0                 dd offset @TRC5@Create  ; TRC5::Create
CODE:004620F4                 dd offset sub_4624DC   
CODE:004620F8                 dd offset sub_4625D4
CODE:004620FC                 dd offset sub_462274
CODE:00462100                 dd offset sub_461EC4
CODE:00462104                 dd offset sub_461ED8
CODE:00462108 aTrc5_0         db 4,'TRC5'             ; DATA XREF: CODE:004620ACo

CODE:00462110 ; Rc5::TRC5
CODE:00462110 @Rc5@TRC5       dd offset byte_462114
CODE:00462114 byte_462114     db 7                    ; DATA XREF: CODE:0046209Co
CODE:00462114                                         ; CODE:Rc5::TRC5o
CODE:00462115                 db 4,'TRC5'
CODE:0046211A                 dd offset @TRC5@        ; `__vtable__'[trc5]
CODE:0046211E                 dd offset @BaseCrypt@TBaseCrypt ; BaseCrypt::TBaseCrypt
CODE:00462122                 dw 5
CODE:00462124                 db 3,'Rc5'
CODE:00462128                 dw 1
CODE:0046212A                 dd offset Byte
CODE:0046212E                 dd 0FF010084h
CODE:00462132                 dd 0FF010084h
CODE:00462136                 dd 1
CODE:0046213A                 dd 80000000h
CODE:0046213E                 dd 80000000h
CODE:00462142                 dw 4
CODE:00462144                 db 6,'Rounds'

CODE:0046214C sub_46214C      proc near               ; CODE XREF: sub_462274+19Cp
CODE:0046214C                                         ; sub_462274+1F1p ...
CODE:0046214C                 mov     cl, dl
CODE:0046214E                 rol     eax, cl
CODE:00462150                 retn
CODE:00462150 sub_46214C      endp

CODE:00462154 sub_462154      proc near               ; CODE XREF: sub_4625D4+58p
CODE:00462154                                         ; sub_4625D4+9Fp
CODE:00462154                 mov     cl, dl
CODE:00462156                 ror     eax, cl
CODE:00462158                 retn
CODE:00462158 sub_462154      endp

CODE:0046215C ; Attributes: library function bp-based frame
CODE:0046215C ; TRC5::Create
CODE:0046215C @TRC5@Create    proc near               ; CODE XREF: sub_5799FC+2Fp
CODE:0046215C                                         ; DATA XREF: CODE:004620F0o
CODE:0046215C var_C           = dword ptr -0Ch
CODE:0046215C var_5           = byte ptr -5
CODE:0046215C var_4           = dword ptr -4
CODE:0046215C                 push    ebp
CODE:0046215D                 mov     ebp, esp
CODE:0046215F                 add     esp, -0Ch
CODE:00462162                 test    dl, dl
CODE:00462164                 jz      short loc_46216E
CODE:00462166                 add     esp, -10h
CODE:00462169                 call    @@ClassCreate   ; __linkproc__ ClassCreate
CODE:0046216E loc_46216E:                             ; CODE XREF: TRC5::Create+8j
CODE:0046216E                 mov     [ebp+var_C], ecx
CODE:00462171                 mov     [ebp+var_5], dl
CODE:00462174                 mov     [ebp+var_4], eax
CODE:00462177                 mov     ecx, [ebp+var_C]
CODE:0046217A                 xor     edx, edx
CODE:0046217C                 mov     eax, [ebp+var_4]
CODE:0046217F                 call    @TComponent@Create ; TComponent::Create
CODE:00462184                 mov     eax, [ebp+var_4]
CODE:00462187                 mov     byte ptr [eax+10082h], 8
CODE:0046218E                 mov     eax, [ebp+var_4]
CODE:00462191                 add     eax, 10042h
CODE:00462196                 mov     edx, [ebp+var_4]
CODE:00462199                 mov     [edx+10088h], eax
CODE:0046219F                 mov     eax, [ebp+var_4]
CODE:004621A2                 mov     eax, [eax+10088h]
CODE:004621A8                 mov     edx, [ebp+var_4]
CODE:004621AB                 mov     [edx+1008Ch], eax
CODE:004621B1                 mov     eax, [ebp+var_4]
CODE:004621B4                 mov     eax, [eax+10088h]
CODE:004621BA                 add     eax, 4
CODE:004621BD                 mov     edx, [ebp+var_4]
CODE:004621C0                 mov     [edx+10090h], eax
CODE:004621C6                 mov     eax, [ebp+var_4]
CODE:004621C9                 mov     byte ptr [eax+10084h], 8
CODE:004621D0                 mov     eax, [ebp+var_4]
CODE:004621D3                 movzx   eax, byte ptr [eax+10084h]
CODE:004621DA                 add     eax, eax
CODE:004621DC                 add     ax, 2
CODE:004621E0                 mov     edx, [ebp+var_4]
CODE:004621E3                 mov     [edx+10098h], ax
CODE:004621EA                 mov     eax, [ebp+var_4]
CODE:004621ED                 movzx   eax, word ptr [eax+10098h]
CODE:004621F4                 shl     eax, 2
CODE:004621F7                 call    @@GetMem        ; __linkproc__ GetMem
CODE:004621FC                 mov     edx, [ebp+var_4]
CODE:004621FF                 mov     [edx+10094h], eax
CODE:00462205                 cmp     [ebp+var_5], 0
CODE:00462209                 jz      short loc_462215
CODE:0046220B                 pop     large dword ptr fs:0
CODE:00462212                 add     esp, 0Ch
CODE:00462215 loc_462215:                             ; CODE XREF: TRC5::Create+ADj
CODE:00462215                 mov     eax, [ebp+var_4]
CODE:00462218                 mov     esp, ebp
CODE:0046221A                 pop     ebp
CODE:0046221B                 retn
CODE:0046221B @TRC5@Create    endp

CODE:0046221C ; TRC5::Destroy
CODE:0046221C @TRC5@Destroy   proc near               ; DATA XREF: CODE:004620C8o
CODE:0046221C var_5           = byte ptr -5
CODE:0046221C var_4           = dword ptr -4
CODE:0046221C                 push    ebp
CODE:0046221D                 mov     ebp, esp
CODE:0046221F                 add     esp, -8
CODE:00462222                 mov     [ebp+var_5], dl
CODE:00462225                 mov     [ebp+var_4], eax
CODE:00462228                 mov     eax, [ebp+var_4]
CODE:0046222B                 cmp     dword ptr [eax+10094h], 0
CODE:00462232                 jz      short loc_462251
CODE:00462234                 mov     eax, [ebp+var_4]
CODE:00462237                 movzx   eax, word ptr [eax+10098h]
CODE:0046223E                 mov     edx, eax
CODE:00462240                 shl     edx, 2
CODE:00462243                 mov     eax, [ebp+var_4]
CODE:00462246                 mov     eax, [eax+10094h]
CODE:0046224C                 call    @@FreeMem       ; __linkproc__ FreeMem
CODE:00462251 loc_462251:                             ; CODE XREF: TRC5::Destroy+16j
CODE:00462251                 mov     dl, [ebp+var_5]
CODE:00462254                 and     dl, 0FEh
CODE:00462257                 mov     eax, [ebp+var_4]
CODE:0046225A                 call    @TBaseCrypt@Destroy ; TBaseCrypt::Destroy
CODE:0046225F                 cmp     [ebp+var_5], 0
CODE:00462263                 jz      short loc_46226D
CODE:00462265                 mov     eax, [ebp+var_4]
CODE:00462268                 call    @@ClassDestroy  ; __linkproc__ ClassDestroy
CODE:0046226D loc_46226D:                             ; CODE XREF: TRC5::Destroy+47j
CODE:0046226D                 mov     eax, [ebp+var_4]
CODE:00462270                 pop     ecx
CODE:00462271                 pop     ecx
CODE:00462272                 pop     ebp
CODE:00462273                 retn
CODE:00462273 @TRC5@Destroy   endp

CODE:00462274 sub_462274      proc near               ; DATA XREF: CODE:004620FCo
CODE:00462274 var_22          = word ptr -22h
CODE:00462274 var_20          = dword ptr -20h
CODE:00462274 var_1C          = dword ptr -1Ch
CODE:00462274 var_18          = dword ptr -18h
CODE:00462274 var_12          = word ptr -12h
CODE:00462274 var_10          = word ptr -10h
CODE:00462274 var_E           = word ptr -0Eh
CODE:00462274 var_C           = word ptr -0Ch
CODE:00462274 var_A           = word ptr -0Ah
CODE:00462274 var_8           = word ptr -8
CODE:00462274 var_6           = word ptr -6
CODE:00462274 var_4           = dword ptr -4
CODE:00462274                 push    ebp
CODE:00462275                 mov     ebp, esp
CODE:00462277                 add     esp, -24h
CODE:0046227A                 mov     [ebp+var_4], eax
CODE:0046227D                 mov     eax, [ebp+var_4]
CODE:00462280                 mov     eax, [eax+24h]
CODE:00462283                 call    @@LStrLen       ; __linkproc__ LStrLen
CODE:00462288                 mov     [ebp+var_6], ax
CODE:0046228C                 mov     eax, [ebp+var_4]
CODE:0046228F                 movzx   eax, byte ptr [eax+10084h]
CODE:00462296                 add     eax, eax
CODE:00462298                 add     ax, 2
CODE:0046229C                 mov     [ebp+var_8], ax
CODE:004622A0                 mov     eax, [ebp+var_4]
CODE:004622A3                 movzx   eax, word ptr [eax+10098h]
CODE:004622AA                 mov     edx, eax
CODE:004622AC                 shl     edx, 2
CODE:004622AF                 mov     eax, [ebp+var_4]
CODE:004622B2                 mov     eax, [eax+10094h]
CODE:004622B8                 call    @@FreeMem       ; __linkproc__ FreeMem
CODE:004622BD                 movzx   eax, [ebp+var_8]
CODE:004622C1                 shl     eax, 2
CODE:004622C4                 call    @@GetMem        ; __linkproc__ GetMem
CODE:004622C9                 mov     edx, [ebp+var_4]
CODE:004622CC                 mov     [edx+10094h], eax
CODE:004622D2                 mov     ax, [ebp+var_8]
CODE:004622D6                 mov     edx, [ebp+var_4]
CODE:004622D9                 mov     [edx+10098h], ax
CODE:004622E0                 movzx   eax, [ebp+var_6]
CODE:004622E4                 test    eax, eax
CODE:004622E6                 jns     short loc_4622EB
CODE:004622E8                 add     eax, 3
CODE:004622EB loc_4622EB:                             ; CODE XREF: sub_462274+72j
CODE:004622EB                 sar     eax, 2
CODE:004622EE                 mov     [ebp+var_A], ax
CODE:004622F2                 movzx   eax, [ebp+var_6]
CODE:004622F6                 and     eax, 80000003h
CODE:004622FB                 jns     short loc_462302
CODE:004622FD                 dec     eax
CODE:004622FE                 or      eax, 0FFFFFFFCh
CODE:00462301                 inc     eax
CODE:00462302 loc_462302:                             ; CODE XREF: sub_462274+87j
CODE:00462302                 test    eax, eax
CODE:00462304                 jz      short loc_46230A
CODE:00462306                 inc     [ebp+var_A]
CODE:0046230A loc_46230A:                             ; CODE XREF: sub_462274+90j
CODE:0046230A                 movzx   eax, [ebp+var_A]
CODE:0046230E                 shl     eax, 2
CODE:00462311                 call    @@GetMem        ; __linkproc__ GetMem
CODE:00462316                 mov     [ebp+var_18], eax
CODE:00462319                 movzx   eax, [ebp+var_A]
CODE:0046231D                 mov     edx, eax
CODE:0046231F                 shl     edx, 2
CODE:00462322                 mov     eax, [ebp+var_18]
CODE:00462325                 xor     ecx, ecx
CODE:00462327                 call    @@FillChar      ; __linkproc__ FillChar
CODE:0046232C                 mov     eax, [ebp+var_4]
CODE:0046232F                 add     eax, 24h
CODE:00462332                 call    @@InternalUniqueString ; __linkproc__ InternalUniqueString
CODE:00462337                 movzx   ecx, [ebp+var_6]
CODE:0046233B                 mov     edx, [ebp+var_18]
CODE:0046233E                 call    @Move
CODE:00462343                 mov     eax, [ebp+var_4]
CODE:00462346                 mov     eax, [eax+10094h]
CODE:0046234C                 mov     dword ptr [eax], 0B7E15163h
CODE:00462352                 mov     ax, [ebp+var_8]
CODE:00462356                 dec     eax
CODE:00462357                 test    ax, ax
CODE:0046235A                 jbe     short loc_462396
CODE:0046235C                 mov     [ebp+var_22], ax
CODE:00462360                 mov     [ebp+var_C], 1
CODE:00462366 loc_462366:                             ; CODE XREF: sub_462274+120j
CODE:00462366                 movzx   eax, [ebp+var_C]
CODE:0046236A                 mov     edx, [ebp+var_4]
CODE:0046236D                 mov     edx, [edx+10094h]
CODE:00462373                 mov     eax, [edx+eax*4-4]
CODE:00462377                 add     eax, 9E3779B9h
CODE:0046237C                 movzx   edx, [ebp+var_C]
CODE:00462380                 mov     ecx, [ebp+var_4]
CODE:00462383                 mov     ecx, [ecx+10094h]
CODE:00462389                 mov     [ecx+edx*4], eax
CODE:0046238C                 inc     [ebp+var_C]
CODE:00462390                 dec     [ebp+var_22]
CODE:00462394                 jnz     short loc_462366
CODE:00462396 loc_462396:                             ; CODE XREF: sub_462274+E6j
CODE:00462396                 mov     [ebp+var_C], 0
CODE:0046239C                 mov     [ebp+var_E], 0
CODE:004623A2                 mov     [ebp+var_10], 0
CODE:004623A8                 xor     eax, eax
CODE:004623AA                 mov     [ebp+var_1C], eax
CODE:004623AD                 xor     eax, eax
CODE:004623AF                 mov     [ebp+var_20], eax
CODE:004623B2                 mov     ax, [ebp+var_A]
CODE:004623B6                 cmp     ax, [ebp+var_8]
CODE:004623BA                 jbe     short loc_4623C9
CODE:004623BC                 mov     ax, [ebp+var_A]
CODE:004623C0                 lea     eax, [eax+eax*2]
CODE:004623C3                 mov     [ebp+var_12], ax
CODE:004623C7                 jmp     short loc_4623D4
CODE:004623C9 loc_4623C9:                             ; CODE XREF: sub_462274+146j
CODE:004623C9                 mov     ax, [ebp+var_8]
CODE:004623CD                 lea     eax, [eax+eax*2]
CODE:004623D0                 mov     [ebp+var_12], ax
CODE:004623D4 loc_4623D4:                             ; CODE XREF: sub_462274+153j
CODE:004623D4                                         ; sub_462274+239j
CODE:004623D4                 inc     [ebp+var_10]
CODE:004623D8                 movzx   eax, [ebp+var_C]
CODE:004623DC                 mov     edx, [ebp+var_4]
CODE:004623DF                 mov     edx, [edx+10094h]
CODE:004623E5                 mov     eax, [edx+eax*4]
CODE:004623E8                 add     eax, [ebp+var_1C]
CODE:004623EB                 add     eax, [ebp+var_20]
CODE:004623EE                 movzx   edx, [ebp+var_C]
CODE:004623F2                 mov     ecx, [ebp+var_4]
CODE:004623F5                 mov     ecx, [ecx+10094h]
CODE:004623FB                 mov     [ecx+edx*4], eax
CODE:004623FE                 movzx   eax, [ebp+var_C]
CODE:00462402                 mov     edx, [ebp+var_4]
CODE:00462405                 mov     edx, [edx+10094h]
CODE:0046240B                 mov     eax, [edx+eax*4]
CODE:0046240E                 mov     dl, 3
CODE:00462410                 call    sub_46214C
CODE:00462415                 movzx   edx, [ebp+var_C]
CODE:00462419                 mov     ecx, [ebp+var_4]
CODE:0046241C                 mov     ecx, [ecx+10094h]
CODE:00462422                 mov     [ecx+edx*4], eax
CODE:00462425                 movzx   eax, [ebp+var_C]
CODE:00462429                 mov     edx, [ebp+var_4]
CODE:0046242C                 mov     edx, [edx+10094h]
CODE:00462432                 mov     eax, [edx+eax*4]
CODE:00462435                 mov     [ebp+var_1C], eax
CODE:00462438                 movzx   eax, [ebp+var_E]
CODE:0046243C                 mov     edx, [ebp+var_18]
CODE:0046243F                 mov     eax, [edx+eax*4]
CODE:00462442                 add     eax, [ebp+var_1C]
CODE:00462445                 add     eax, [ebp+var_20]
CODE:00462448                 movzx   edx, [ebp+var_E]
CODE:0046244C                 mov     ecx, [ebp+var_18]
CODE:0046244F                 mov     [ecx+edx*4], eax
CODE:00462452                 mov     dl, byte ptr [ebp+var_1C]
CODE:00462455                 add     dl, byte ptr [ebp+var_20]
CODE:00462458                 and     dl, 1Fh
CODE:0046245B                 movzx   eax, [ebp+var_E]
CODE:0046245F                 mov     ecx, [ebp+var_18]
CODE:00462462                 mov     eax, [ecx+eax*4]
CODE:00462465                 call    sub_46214C
CODE:0046246A                 movzx   edx, [ebp+var_E]
CODE:0046246E                 mov     ecx, [ebp+var_18]
CODE:00462471                 mov     [ecx+edx*4], eax
CODE:00462474                 movzx   eax, [ebp+var_E]
CODE:00462478                 mov     edx, [ebp+var_18]
CODE:0046247B                 mov     eax, [edx+eax*4]
CODE:0046247E                 mov     [ebp+var_20], eax
CODE:00462481                 movzx   eax, [ebp+var_C]
CODE:00462485                 inc     eax
CODE:00462486                 movzx   edx, [ebp+var_8]
CODE:0046248A                 mov     ecx, edx
CODE:0046248C                 cdq
CODE:0046248D                 idiv    ecx
CODE:0046248F                 mov     [ebp+var_C], dx
CODE:00462493                 movzx   eax, [ebp+var_E]
CODE:00462497                 inc     eax
CODE:00462498                 movzx   edx, [ebp+var_A]
CODE:0046249C                 mov     ecx, edx
CODE:0046249E                 cdq
CODE:0046249F                 idiv    ecx
CODE:004624A1                 mov     [ebp+var_E], dx
CODE:004624A5                 mov     ax, [ebp+var_10]
CODE:004624A9                 cmp     ax, [ebp+var_12]
CODE:004624AD                 jnz     loc_4623D4
CODE:004624B3                 movzx   eax, [ebp+var_A]
CODE:004624B7                 mov     edx, eax
CODE:004624B9                 shl     edx, 2
CODE:004624BC                 mov     eax, [ebp+var_18]
CODE:004624BF                 xor     ecx, ecx
CODE:004624C1                 call    @@FillChar      ; __linkproc__ FillChar
CODE:004624C6                 movzx   eax, [ebp+var_A]
CODE:004624CA                 mov     edx, eax
CODE:004624CC                 shl     edx, 2
CODE:004624CF                 mov     eax, [ebp+var_18]
CODE:004624D2                 call    @@FreeMem       ; __linkproc__ FreeMem
CODE:004624D7                 mov     esp, ebp
CODE:004624D9                 pop     ebp
CODE:004624DA                 retn
CODE:004624DA sub_462274      endp

CODE:004624DC sub_4624DC      proc near               ; DATA XREF: CODE:004620F4o
CODE:004624DC var_A           = word ptr -0Ah
CODE:004624DC var_8           = word ptr -8
CODE:004624DC var_6           = word ptr -6
CODE:004624DC var_4           = dword ptr -4
CODE:004624DC                 push    ebp
CODE:004624DD                 mov     ebp, esp
CODE:004624DF                 add     esp, -0Ch
CODE:004624E2                 mov     [ebp+var_4], eax
CODE:004624E5                 mov     eax, [ebp+var_4]
CODE:004624E8                 mov     eax, [eax+10094h]
CODE:004624EE                 mov     eax, [eax]
CODE:004624F0                 mov     edx, [ebp+var_4]
CODE:004624F3                 mov     edx, [edx+1008Ch]
CODE:004624F9                 add     [edx], eax
CODE:004624FB                 mov     eax, [ebp+var_4]
CODE:004624FE                 mov     eax, [eax+10094h]
CODE:00462504                 mov     eax, [eax+4]
CODE:00462507                 mov     edx, [ebp+var_4]
CODE:0046250A                 mov     edx, [edx+10090h]
CODE:00462510                 add     [edx], eax
CODE:00462512                 mov     eax, [ebp+var_4]
CODE:00462515                 movzx   eax, byte ptr [eax+10084h]
CODE:0046251C                 test    ax, ax
CODE:0046251F                 jbe     loc_4625D0
CODE:00462525                 mov     [ebp+var_A], ax
CODE:00462529                 mov     [ebp+var_6], 1
CODE:0046252F loc_46252F:                             ; CODE XREF: sub_4624DC+EEj
CODE:0046252F                 mov     ax, [ebp+var_6]
CODE:00462533                 add     eax, eax
CODE:00462535                 mov     [ebp+var_8], ax
CODE:00462539                 mov     eax, [ebp+var_4]
CODE:0046253C                 mov     eax, [eax+1008Ch]
CODE:00462542                 mov     eax, [eax]
CODE:00462544                 mov     edx, [ebp+var_4]
CODE:00462547                 mov     edx, [edx+10090h]
CODE:0046254D                 xor     eax, [edx]
CODE:0046254F                 mov     edx, [ebp+var_4]
CODE:00462552                 mov     edx, [edx+10090h]
CODE:00462558                 mov     dl, [edx]
CODE:0046255A                 and     dl, 1Fh
CODE:0046255D                 call    sub_46214C
CODE:00462562                 movzx   edx, [ebp+var_8]
CODE:00462566                 mov     ecx, [ebp+var_4]
CODE:00462569                 mov     ecx, [ecx+10094h]
CODE:0046256F                 add     eax, [ecx+edx*4]
CODE:00462572                 mov     edx, [ebp+var_4]
CODE:00462575                 mov     edx, [edx+1008Ch]
CODE:0046257B                 mov     [edx], eax
CODE:0046257D                 mov     eax, [ebp+var_4]
CODE:00462580                 mov     eax, [eax+10090h]
CODE:00462586                 mov     eax, [eax]
CODE:00462588                 mov     edx, [ebp+var_4]
CODE:0046258B                 mov     edx, [edx+1008Ch]
CODE:00462591                 xor     eax, [edx]
CODE:00462593                 mov     edx, [ebp+var_4]
CODE:00462596                 mov     edx, [edx+1008Ch]
CODE:0046259C                 mov     dl, [edx]
CODE:0046259E                 and     dl, 1Fh
CODE:004625A1                 call    sub_46214C
CODE:004625A6                 movzx   edx, [ebp+var_8]
CODE:004625AA                 mov     ecx, [ebp+var_4]
CODE:004625AD                 mov     ecx, [ecx+10094h]
CODE:004625B3                 add     eax, [ecx+edx*4+4]
CODE:004625B7                 mov     edx, [ebp+var_4]
CODE:004625BA                 mov     edx, [edx+10090h]
CODE:004625C0                 mov     [edx], eax
CODE:004625C2                 inc     [ebp+var_6]
CODE:004625C6                 dec     [ebp+var_A]
CODE:004625CA                 jnz     loc_46252F
CODE:004625D0 loc_4625D0:                             ; CODE XREF: sub_4624DC+43j
CODE:004625D0                 mov     esp, ebp
CODE:004625D2                 pop     ebp
CODE:004625D3                 retn
CODE:004625D3 sub_4624DC      endp

CODE:004625D4 sub_4625D4      proc near               ; DATA XREF: CODE:004620F8o
CODE:004625D4 var_8           = word ptr -8
CODE:004625D4 var_6           = word ptr -6
CODE:004625D4 var_4           = dword ptr -4
CODE:004625D4                 push    ebp
CODE:004625D5                 mov     ebp, esp
CODE:004625D7                 add     esp, -8
CODE:004625DA                 mov     [ebp+var_4], eax
CODE:004625DD                 mov     eax, [ebp+var_4]
CODE:004625E0                 movzx   eax, byte ptr [eax+10084h]
CODE:004625E7                 cmp     ax, 1
CODE:004625EB                 jb      loc_46269D
CODE:004625F1                 mov     [ebp+var_6], ax
CODE:004625F5 loc_4625F5:                             ; CODE XREF: sub_4625D4+C3j
CODE:004625F5                 mov     ax, [ebp+var_6]
CODE:004625F9                 add     eax, eax
CODE:004625FB                 mov     [ebp+var_8], ax
CODE:004625FF                 movzx   eax, [ebp+var_8]
CODE:00462603                 mov     edx, [ebp+var_4]
CODE:00462606                 mov     edx, [edx+10094h]
CODE:0046260C                 push    dword ptr [edx+eax*4+4]
CODE:00462610                 mov     eax, [ebp+var_4]
CODE:00462613                 mov     eax, [eax+10090h]
CODE:00462619                 mov     eax, [eax]
CODE:0046261B                 pop     edx
CODE:0046261C                 sub     eax, edx
CODE:0046261E                 mov     edx, [ebp+var_4]
CODE:00462621                 mov     edx, [edx+1008Ch]
CODE:00462627                 mov     dl, [edx]
CODE:00462629                 and     dl, 1Fh
CODE:0046262C                 call    sub_462154
CODE:00462631                 mov     edx, [ebp+var_4]
CODE:00462634                 mov     edx, [edx+1008Ch]
CODE:0046263A                 xor     eax, [edx]
CODE:0046263C                 mov     edx, [ebp+var_4]
CODE:0046263F                 mov     edx, [edx+10090h]
CODE:00462645                 mov     [edx], eax
CODE:00462647                 movzx   eax, [ebp+var_8]
CODE:0046264B                 mov     edx, [ebp+var_4]
CODE:0046264E                 mov     edx, [edx+10094h]
CODE:00462654                 push    dword ptr [edx+eax*4]
CODE:00462657                 mov     eax, [ebp+var_4]
CODE:0046265A                 mov     eax, [eax+1008Ch]
CODE:00462660                 mov     eax, [eax]
CODE:00462662                 pop     edx
CODE:00462663                 sub     eax, edx
CODE:00462665                 mov     edx, [ebp+var_4]
CODE:00462668                 mov     edx, [edx+10090h]
CODE:0046266E                 mov     dl, [edx]
CODE:00462670                 and     dl, 1Fh
CODE:00462673                 call    sub_462154
CODE:00462678                 mov     edx, [ebp+var_4]
CODE:0046267B                 mov     edx, [edx+10090h]
CODE:00462681                 xor     eax, [edx]
CODE:00462683                 mov     edx, [ebp+var_4]
CODE:00462686                 mov     edx, [edx+1008Ch]
CODE:0046268C                 mov     [edx], eax
CODE:0046268E                 dec     [ebp+var_6]
CODE:00462692                 cmp     [ebp+var_6], 0
CODE:00462697                 jnz     loc_4625F5
CODE:0046269D loc_46269D:                             ; CODE XREF: sub_4625D4+17j
CODE:0046269D                 mov     eax, [ebp+var_4]
CODE:004626A0                 mov     eax, [eax+10094h]
CODE:004626A6                 mov     eax, [eax+4]
CODE:004626A9                 mov     edx, [ebp+var_4]
CODE:004626AC                 mov     edx, [edx+10090h]
CODE:004626B2                 sub     [edx], eax
CODE:004626B4                 mov     eax, [ebp+var_4]
CODE:004626B7                 mov     eax, [eax+10094h]
CODE:004626BD                 mov     eax, [eax]
CODE:004626BF                 mov     edx, [ebp+var_4]
CODE:004626C2                 mov     edx, [edx+1008Ch]
CODE:004626C8                 sub     [edx], eax
CODE:004626CA                 pop     ecx
CODE:004626CB                 pop     ecx
CODE:004626CC                 pop     ebp
CODE:004626CD                 retn
CODE:004626CD sub_4625D4      endp

CODE:004626D0 ; TRC5::Finalization
CODE:004626D0 @TRC5@Finalization proc near            ; DATA XREF: CODE:0059B4E4o
CODE:004626D0                 push    ebp
CODE:004626D1                 mov     ebp, esp
CODE:004626D3                 xor     eax, eax
CODE:004626D5                 push    ebp
CODE:004626D6                 push    offset loc_4626F5
CODE:004626DB                 push    dword ptr fs:[eax]
CODE:004626DE                 mov     fs:[eax], esp
CODE:004626E1                 inc     ds:dword_5A47DC
CODE:004626E7                 xor     eax, eax
CODE:004626E9                 pop     edx
CODE:004626EA                 pop     ecx
CODE:004626EB                 pop     ecx
CODE:004626EC                 mov     fs:[eax], edx
CODE:004626EF                 push    offset loc_4626FC
CODE:004626F4 locret_4626F4:                          ; CODE XREF: TRC5::Finalization+2Aj
CODE:004626F4                 retn
CODE:004626F5 loc_4626F5:                             ; DATA XREF: TRC5::Finalization+6o
CODE:004626F5                 jmp     @@HandleFinally ; __linkproc__ HandleFinally
CODE:004626FA                 jmp     short locret_4626F4
CODE:004626FC loc_4626FC:                             ; CODE XREF: TRC5::Finalization:locret_4626F4j
CODE:004626FC                                         ; DATA XREF: TRC5::Finalization+1Fo
CODE:004626FC                 pop     ebp
CODE:004626FD                 retn
CODE:004626FD @TRC5@Finalization endp ; sp = -4

CODE:00462700 ; TRC5::Initialization
CODE:00462700 @TRC5@Initialization proc near          ; DATA XREF: CODE:0059B4E0o
CODE:00462700                 sub     ds:dword_5A47DC, 1
CODE:00462707                 retn
CODE:00462707 @TRC5@Initialization endp

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 161
活跃值: (231)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
首先,你要明白RC5算法的原理,如果不懂,到网上找找看。
其次,RC5的解密关键是找到RC5_SET_KEY函数,得到KEY。通常这个函数都在P和Q调用的前面几个函数中,程序会调用P和Q来初始化S盒。对于特定的字长,P和Q为常数,它的定义如下:
#define RC5_16_P        0xB7E1
#define RC5_16_Q        0x9E37
#define RC5_32_P        0xB7E15163L
#define RC5_32_Q        0x9E3779B9L
#define RC5_64_P        0xB7E151628AED2A6BLL
#define RC5_64_Q        0x9E3779B97F4A7C15LL
在你的程序中搜索这些值,搜索到后,在其地址上下内存访问断点,断下后向后回朔函数,再跟踪,一般很快就可以找到KEY。
2005-1-22 22:05
0
雪    币: 3686
活跃值: (1036)
能力值: (RANK:760 )
在线值:
发帖
回帖
粉丝
3
CODE:0046234C                 mov     dword ptr [eax], 0B7E15163h

CODE:00462377                 add     eax, 9E3779B9h


找RC的源码来看看你就会明白。
2005-1-23 10:00
0
雪    币: 397
活跃值: (799)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wsy
4
恕我愚钝,我不知道要帮你看什么。
2005-1-23 10:09
0
雪    币: 161
活跃值: (231)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
程序下载地址都没有一个,看什么?
2005-1-23 16:28
0
游客
登录 | 注册 方可回帖
返回
//