I am using this project
on server side. I tried various clients (2007(I couldn't run xtrap files are missing),2008,2010,2012(the version I'm working now),2014,2016), I unpack the wolf.xfs file (quickbms by aligui) and put it in the client directory and replace the original (wolf.xfs) I put the folder named (wolf.xfs).I make the server ip settings, it connects to the server without any problems, but the incoming packets were completely random, so I examined cshell.dll and saw that it mixed the cs_br_chainlist_req package with srand(Gettickcount) before sending it, then I edited it, as a result I can get fixed packets, but they are still encrypted or the server cannot read the packets properly. If anyone knows how to fix this problem, I would be very grateful.
some packet data :
Code:
1-//move eax,2 (username:apolet ,Password:123123 ,Countrycode:200) attemp-1:067653d8002482820019f6a4e77f66477b002e2907e548db attemp-2:067653d8002482820019f6a4e77f66477b002e2907e548db // 2-//move eax,3 (username:apolet ,Password:123123 ,Countrycode:200) attemp-1:036dc2e9e9c2095248ed730aea64c8e99b9f18834bfc494d attemp-2:036dc2e9e9c2095248ed730aea64c8e99b9f18834bfc494d // jnz short loc_340A0BF1 -> jz short loc_340A0BF1 = ( 036dc2e9e9c2095205fb5a673e11b8c6589c2c45ed41f0e1)
edited code :
Code:
sub_340A0AF0 proc near ; CODE XREF: sub_340A2430+1A5↓p
.text:340A0AF0
.text:340A0AF0 var_2060 = dword ptr -2060h
.text:340A0AF0 var_205C = dword ptr -205Ch
.text:340A0AF0 var_2058 = byte ptr -2058h
.text:340A0AF0 var_2057 = word ptr -2057h
.text:340A0AF0 var_58 = dword ptr -58h
.text:340A0AF0 var_54 = dword ptr -54h
.text:340A0AF0 Src = byte ptr -50h
.text:340A0AF0 var_4F = byte ptr -4Fh
.text:340A0AF0 var_10 = dword ptr -10h
.text:340A0AF0 var_C = dword ptr -0Ch
.text:340A0AF0 var_4 = dword ptr -4
.text:340A0AF0 arg_4 = dword ptr 0Ch
.text:340A0AF0
.text:340A0AF0 ; FUNCTION CHUNK AT .text:343F49D0 SIZE 00000036 BYTES
.text:340A0AF0
.text:340A0AF0 ; __unwind { // SEH_340A0AF0
.text:340A0AF0 push ebp
.text:340A0AF1 mov ebp, esp
.text:340A0AF3 push 0FFFFFFFFh
.text:340A0AF5 push offset SEH_340A0AF0
.text:340A0AFA mov eax, large fs:0
.text:340A0B00 push eax
.text:340A0B01 mov eax, 2054h
.text:340A0B06 call __alloca_probe
.text:340A0B0B mov eax, ___security_cookie
.text:340A0B10 xor eax, ebp
.text:340A0B12 mov [ebp+var_10], eax
.text:340A0B15 push ebx
.text:340A0B16 push esi
.text:340A0B17 push edi
.text:340A0B18 push eax
.text:340A0B19 lea eax, [ebp+var_C]
.text:340A0B1C mov large fs:0, eax
.text:340A0B22 mov esi, dword_346F2918
.text:340A0B28 xor ebx, ebx
.text:340A0B2A cmp esi, 48773BAFh
.text:340A0B30 jle short loc_340A0B34
.text:340A0B32 xor esi, esi
.text:340A0B34
.text:340A0B34 loc_340A0B34: ; CODE XREF: sub_340A0AF0+40↑j
.text:340A0B34 push 3Fh ; '?' ; Size
.text:340A0B36 lea eax, [ebp+var_4F]
.text:340A0B39 push ebx ; Val
.text:340A0B3A push eax ; void *
.text:340A0B3B mov [ebp+Src], bl
.text:340A0B3E call memset
.text:340A0B43 add esi, 2
.text:340A0B46 add esp, 0Ch
.text:340A0B49 mov dword_346F2918, esi
.text:340A0B4F mov [ebp+var_205C], 40h ; '@'
.text:340A0B59 mov esi, 8
.text:340A0B5E cmp dword_346F28E8, ebx
.text:340A0B64 jnz short loc_340A0BA1
.text:340A0B66 push esi ; unsigned int
.text:340A0B67 call ??2@YAPAXI@Z ; operator new(uint)
.text:340A0B6C add esp, 4
.text:340A0B6F mov [ebp+var_2060], eax
.text:340A0B75 ; try {
.text:340A0B75 mov [ebp+var_4], ebx
.text:340A0B78 cmp eax, ebx
.text:340A0B7A jz short loc_340A0B85
.text:340A0B7C mov ecx, eax
.text:340A0B7E call sub_3419B160
.text:340A0B83 jmp short loc_340A0B87
.text:340A0B85 ; ---------------------------------------------------------------------------
.text:340A0B85
.text:340A0B85 loc_340A0B85: ; CODE XREF: sub_340A0AF0+8A↑j
.text:340A0B85 xor eax, eax
.text:340A0B87
.text:340A0B87 loc_340A0B87: ; CODE XREF: sub_340A0AF0+93↑j
.text:340A0B87 push 80h ; '€'
.text:340A0B8C push eax
.text:340A0B8C ; } // starts at 340A0B75
.text:340A0B8D mov [ebp+var_4], 0FFFFFFFFh
.text:340A0B94 mov dword_346F28E8, eax
.text:340A0B99 call sub_3408E390
.text:340A0B9E add esp, 8
.text:340A0BA1
.text:340A0BA1 loc_340A0BA1: ; CODE XREF: sub_340A0AF0+74↑j
.text:340A0BA1 lea ecx, [ebp+var_205C]
.text:340A0BA7 push ecx
.text:340A0BA8 mov ecx, dword_346F28E8
.text:340A0BAE lea edx, [ebp+Src]
.text:340A0BB1 push edx
.text:340A0BB2 push ebx
.text:340A0BB3 call sub_3419B310
.text:340A0BB8 mov edi, 1
.text:340A0BBD cmp [ebp+Src], bl
.text:340A0BC0 jnz short loc_340A0BF1
.text:340A0BC2 call ds:rand
.text:340A0BC8 xor edx, edx
.text:340A0BCA mov ecx, 22h ; '"'
.text:340A0BCF div ecx
.text:340A0BD1 lea ecx, [ebp+Src]
.text:340A0BD4 mov edx, off_346377F8[edx*4] ; "denoil"
.text:340A0BDB sub ecx, edx
.text:340A0BDD lea ecx, [ecx+0]
.text:340A0BE0
.text:340A0BE0 loc_340A0BE0: ; CODE XREF: sub_340A0AF0+F9↓j
.text:340A0BE0 mov al, [edx]
.text:340A0BE2 mov [ecx+edx], al
.text:340A0BE5 add edx, edi
.text:340A0BE7 cmp al, bl
.text:340A0BE9 jnz short loc_340A0BE0
.text:340A0BEB add dword_346F2918, edi
.text:340A0BF1
.text:340A0BF1 loc_340A0BF1: ; CODE XREF: sub_340A0AF0+D0↑j
.text:340A0BF1 lea eax, [ebp+Src]
.text:340A0BF4 lea ecx, [eax+1]
.text:340A0BF7
.text:340A0BF7 loc_340A0BF7: ; CODE XREF: sub_340A0AF0+10C↓j
.text:340A0BF7 mov dl, [eax]
.text:340A0BF9 inc eax
.text:340A0BFA cmp dl, bl
.text:340A0BFC jnz short loc_340A0BF7
.text:340A0BFE add dword_346F2918, edi
.text:340A0C04 sub eax, ecx
.text:340A0C06 mov edx, 1102h
.text:340A0C0B mov ebx, eax
.text:340A0C0D mov [ebp+var_58], esi
.text:340A0C10 mov [ebp+var_54], esi
.text:340A0C13 mov [ebp+var_2057], dx
.text:340A0C1A mov eax, 64h ; 'd' ; Keypatch modified this from:
.text:340A0C1A ; call ds:GetTickCount
.text:340A0C1A ; Keypatch padded NOP to next boundary: 1 bytes
.text:340A0C1A ; Keypatch modified this from:
.text:340A0C1A ; mov eax, 4
.text:340A0C1A ; Keypatch modified this from:
.text:340A0C1A ; mov eax, 8
.text:340A0C1A ; Keypatch modified this from:
.text:340A0C1A ; mov eax, 5
.text:340A0C1A ; Keypatch modified this from:
.text:340A0C1A ; mov eax, 6
.text:340A0C1A ; Keypatch modified this from:
.text:340A0C1A ; mov eax, 16h
.text:340A0C1A ; Keypatch modified this from:
.text:340A0C1A ; mov eax, 22h ; '"'
.text:340A0C1F nop
.text:340A0C20 push eax ; Seed
.text:340A0C21 call ds:srand
.text:340A0C27 mov eax, [ebp+var_58]
.text:340A0C2A mov [ebp+eax+var_2058], bl
.text:340A0C31 mov eax, [ebp+var_58]
.text:340A0C34 add eax, edi
.text:340A0C36 push ebx ; Size
.text:340A0C37 lea ecx, [ebp+Src]
.text:340A0C3A push ecx ; Src
.text:340A0C3B lea edx, [ebp+eax+var_2058]
.text:340A0C42 push edx ; void *
.text:340A0C43 mov [ebp+var_58], eax
.text:340A0C46 call memcpy
.text:340A0C4B mov ecx, dword_346F2604
.text:340A0C51 add [ebp+var_58], ebx
.text:340A0C54 add dword_346F2918, 3
.text:340A0C5B mov eax, [ecx]
.text:340A0C5D mov eax, [eax+0FCh]
.text:340A0C63 add esp, 10h
.text:340A0C66 lea edx, [ebp+var_2058]
.text:340A0C6C push edx
.text:340A0C6D call eax
.text:340A0C6F mov eax, dword_3468793C
.text:340A0C74 add dword_346F2918, edi
.text:340A0C7A mov ecx, [eax]
.text:340A0C7C mov edx, [ecx+18h]
.text:340A0C7F push offset aCsBrChainlistR ; "CS_BR_CHAINLIST_REQ"
.text:340A0C84 push eax ; ArgList
.text:340A0C85 call edx
.text:340A0C87 mov eax, dword_346F2604
.text:340A0C8C add dword_346F2918, edi
.text:340A0C92 push offset aCsBrChainlistR_0 ; "CS_BR_CHAINLIST_REQ"
.text:340A0C97 push eax ; int
.text:340A0C98 call sub_3406BA90
.text:340A0C9D add esp, 10h
.text:340A0CA0 add dword_346F2918, edi
.text:340A0CA6 mov ecx, [ebp+var_C]
.text:340A0CA9 mov large fs:0, ecx
.text:340A0CB0 pop ecx
.text:340A0CB1 pop edi
.text:340A0CB2 pop esi
.text:340A0CB3 pop ebx
.text:340A0CB4 mov ecx, [ebp+var_10]
.text:340A0CB7 xor ecx, ebp ; StackCookie
.text:340A0CB9 call [MENTION=3191854]__S[/MENTION]ecurity_check_cookie@4 ; __security_check_cookie(x)
.text:340A0CBE mov esp, ebp
.text:340A0CC0 pop ebp
.text:340A0CC1 retn
.text:340A0CC1 ; } // starts at 340A0AF0
.text:340A0CC1 sub_340A0AF0 endp






