sope
December 12th, 2002, 15:41
Hi, to all
I am working on a target & i don't have the dongle.
Reading Cyberheg tuts on Breaking the shell i have marked the similar
type of code which i come across in the tut.
I found the main switch & below the result
First time we have
msg (1) CD03
00FB1DE5 callby_CD03: ; CODE XREF: start+20Aj
00FB1DE5 mov ax, :word_FA7C4C-->ax=03D5
00FB1DEB mov ecx, :dword_FA7C40--ecx=FA6CA8
00FB1DF1 push eax
00FB1DF2 push ecx
00FB1DF3 call sub_FB16C0 ; depending on ax we have value in eax
00FB1DF8 add
ff_FA7C38, edi; this subtracts 4 (add 0xFA7C38, 0xFFFFFFFC = 0xFA7C34)
00FB1DFE mov ecx,
ff_FA7C38 ecx=FA7C34
00FB1E04 add esp, 8
00FB1E07 mov :dword_FA7C40, eax -->eax=FA6CA8
00FB1E0C mov [ecx], eax -->save it
00FB1E0E jmp continuedelay
msg (2) BA51 ---> Calls SproFindNextUnit &
Calls sproFormatPacket & fills 0x404 bytes (1028 bytes) with defaults i guess.
msg (3) 22B7
00FB1B2A call sub_FB16C0 ; get our response
00FB1B2F add esp, 8
00FB1B32 mov ecx,
ff_FA7C38 ; get constant ecx=0xFA7C34
00FB1B38 sub [ecx], eax ; subtract eax=0
00FB1B3A jmp continuedelay ; continue
msg (4) 0611
00FB1A14
00FB1A14 loc_FB1A14: ; CODE XREF: start+28Aj
00FB1A14 ; start+297j
00FB1A14 mov eax,
ff_FA7C38
00FB1A19 add
ff_FA7C38, esi
00FB1A1F cmp dword ptr [eax], 0
00FB1A22 jz continuedelay ; was the result zero?
00FB1A28 mov eax, :dword_FA7C40
00FB1A2D mov
ff_FA7C3C, eax
00FB1A32 jmp continuedelay
Default the result will be zero and the jump will occur. So far so good.
msg (5) 1A44 ---- GetQuery
00FB1AE0 callby_1A44: ; CODE XREF: start+107j
00FB1AE0 add
ff_FA7C38, edi (subtracts 4 --> FA7C38-4 = FA7C34)
00FB1AE6 call :dword_FA7C40 ; Call GetQuery
00FB1AEC mov ecx,
ff_FA7C38 ; get where to save
00FB1AF2 mov [ecx], eax ; save -->eax=0
00FB1AF4 jmp continuedelay ; continue
msg (6) CD03 (2nd Time) CD03 look up after the Call subtracts 4 from FA7C34 which become FA7C30
mov [ecx], eax -->stores eax = 0xFA5004 in ecx = 0xFA7C30
msg (7) CD03 (3rd Time) CD03 look up after the Call subtracts 4 from FA7C30 which become FA7C2C
mov [ecx], eax -->stores eax = 0xFA5290 in ecx = 0xFA7C2C
msg (8) 22B7 (2nd time)
00FB1B1C callby_22B7: ; CODE XREF: start+124j
00FB1B1C mov ax, :word_FA7C4C ax=0x03D5
00FB1B22 mov ecx, :dword_FA7C40 ECX=0xFA5004
00FB1B28 push eax
00FB1B29 push ecx
00FB1B2A call sub_FB16C0 ; get our response
00FB1B2F add esp, 8 EAX = FA5004
00FB1B32 mov ecx,
ff_FA7C38 ; get constant ECX=FA7C2c
00FB1B38 sub [ecx], eax ; subtract in my case FA5290-FA5004=00008C02 = 028C0000
00FB1B3A jmp continuedelay ; continue
Doubt: I want to clarify is 0000028C is the constant for this target ? This is also used in msg B323 Decrypting
routine see below B323
continue.... next post pls...
attached a file ask.zip
I am working on a target & i don't have the dongle.
Reading Cyberheg tuts on Breaking the shell i have marked the similar
type of code which i come across in the tut.
I found the main switch & below the result
First time we have
msg (1) CD03
00FB1DE5 callby_CD03: ; CODE XREF: start+20Aj
00FB1DE5 mov ax, :word_FA7C4C-->ax=03D5
00FB1DEB mov ecx, :dword_FA7C40--ecx=FA6CA8
00FB1DF1 push eax
00FB1DF2 push ecx
00FB1DF3 call sub_FB16C0 ; depending on ax we have value in eax
00FB1DF8 add

00FB1DFE mov ecx,

00FB1E04 add esp, 8
00FB1E07 mov :dword_FA7C40, eax -->eax=FA6CA8
00FB1E0C mov [ecx], eax -->save it
00FB1E0E jmp continuedelay
msg (2) BA51 ---> Calls SproFindNextUnit &
Calls sproFormatPacket & fills 0x404 bytes (1028 bytes) with defaults i guess.
msg (3) 22B7
00FB1B2A call sub_FB16C0 ; get our response
00FB1B2F add esp, 8
00FB1B32 mov ecx,

00FB1B38 sub [ecx], eax ; subtract eax=0
00FB1B3A jmp continuedelay ; continue
msg (4) 0611
00FB1A14
00FB1A14 loc_FB1A14: ; CODE XREF: start+28Aj
00FB1A14 ; start+297j
00FB1A14 mov eax,

00FB1A19 add

00FB1A1F cmp dword ptr [eax], 0
00FB1A22 jz continuedelay ; was the result zero?
00FB1A28 mov eax, :dword_FA7C40
00FB1A2D mov

00FB1A32 jmp continuedelay
Default the result will be zero and the jump will occur. So far so good.
msg (5) 1A44 ---- GetQuery
00FB1AE0 callby_1A44: ; CODE XREF: start+107j
00FB1AE0 add

00FB1AE6 call :dword_FA7C40 ; Call GetQuery
00FB1AEC mov ecx,

00FB1AF2 mov [ecx], eax ; save -->eax=0
00FB1AF4 jmp continuedelay ; continue
msg (6) CD03 (2nd Time) CD03 look up after the Call subtracts 4 from FA7C34 which become FA7C30
mov [ecx], eax -->stores eax = 0xFA5004 in ecx = 0xFA7C30
msg (7) CD03 (3rd Time) CD03 look up after the Call subtracts 4 from FA7C30 which become FA7C2C
mov [ecx], eax -->stores eax = 0xFA5290 in ecx = 0xFA7C2C
msg (8) 22B7 (2nd time)
00FB1B1C callby_22B7: ; CODE XREF: start+124j
00FB1B1C mov ax, :word_FA7C4C ax=0x03D5
00FB1B22 mov ecx, :dword_FA7C40 ECX=0xFA5004
00FB1B28 push eax
00FB1B29 push ecx
00FB1B2A call sub_FB16C0 ; get our response
00FB1B2F add esp, 8 EAX = FA5004
00FB1B32 mov ecx,

00FB1B38 sub [ecx], eax ; subtract in my case FA5290-FA5004=00008C02 = 028C0000
00FB1B3A jmp continuedelay ; continue
Doubt: I want to clarify is 0000028C is the constant for this target ? This is also used in msg B323 Decrypting
routine see below B323
continue.... next post pls...
attached a file ask.zip