锘??xml version="1.0" encoding="utf-8" standalone="yes"?> push 1FFF ;1FFF鍏ユ爤
鍛戒護(hù)浣撻儴鍒嗙粡榪囨櫘閫氳В瀵嗗悗錛岃繕闇瑕佹牴鎹竴涓帺鐮佹潵榪涜浜屾瑙e瘑
榪欓噷鏄簩嬈¤В瀵嗗懡浠や綋鐨勯儴鍒?br />
push ebp
mov ebp, esp
and esp, FFFFFFF8
push -1
push 004C833C
mov eax, dword ptr fs:[0]
push eax
mov dword ptr fs:[0], esp
push ecx
mov eax, 549C
call 004BC0B0
push ebx
push esi
push edi
mov edi, dword ptr [ebp+8]
cmp byte ptr [edi], 2B <------鍒ゆ柇絎竴涓瓧鑺傛槸鍚︿負(fù) +
mov ebx, ecx
jnz L029
inc edi
push edi
call 0042B0D0
mov ecx, dword ptr [esp+54AC]
mov dword ptr fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn 4
L029:
push edi <----- 瀵嗘枃
lea eax, dword ptr [esp+3C]
push eax <------ 瀵嗘枃瑙e瘑鍚庤淇濆瓨鍦ㄨ繖閲?br />
call 004A0CE0
mov cx, word ptr [ebx+49B162]
xor word ptr [esp+3C], cx
xor edx, edx
mov dh, byte ptr [esp+43]
mov cl, byte ptr [ebx+49B161]
xor eax, eax
mov ah, byte ptr [esp+3F]
mov dl, byte ptr [esp+41]
mov al, byte ptr [esp+3D]
shl edx, 10
or edx, eax
mov al, byte ptr [ebx+49B160]
mov esi, edx
xor cl, byte ptr [esp+3C]
xor edx, edx
mov dh, cl
xor al, byte ptr [esp+38]
mov dword ptr [esp+1C], esi
mov dl, al
mov eax, dword ptr [esp+38]
shr eax, 10
mov cx, dx
movzx dx, byte ptr [esp+39]
mov dh, byte ptr [esp+3E]
mov word ptr [esp+20], cx
mov word ptr [esp+22], dx
xor edx, edx
mov dh, byte ptr [esp+40]
mov dl, al
movzx ax, ah
mov ah, byte ptr [esp+42]
mov word ptr [esp+24], dx
mov word ptr [esp+26], ax
movzx eax, cx
add eax, -138A
cmp eax, 123
ja 0043BF9D
movzx ecx, byte ptr [eax+43C220]
jmp dword ptr [ecx*4+43BFB4]
鍦?MIR3G浜屾鍔犺В瀵嗗弽姹囩紪鍒嗘瀽錛堜笁錛夆斺旇窡韙?nbsp; 涓湁4涓祴鍊?br />
mov byte ptr [ebx+49B160], al
mov byte ptr [ebx+49B161], ah
mov word ptr [ebx+49B162], ax
mov word ptr [ebx+49B164], ax
榪欏氨鏄懡浠や綋浜屾瑙e瘑鏃剁殑鎺╃爜
浠庝竴嬈¤В瀵嗙殑娑堟伅浣撲腑鎻愬彇鎺╃爜鐨勯儴鍒?br />
sub eax, edx
cmp eax, 3C ;鍒ゆ柇娑堟伅浣撻暱搴︽槸鍚︿負(fù)60
jnz 0043BF9D
mov ecx, dword ptr [esp+CA8] esp+CA8淇濆瓨鐨勫氨鏄粡榪囦竴嬈¤В瀵嗙殑娑堟伅浣擄紙涓嶅寘鍚懡浠や綋錛?br />
mov edx, dword ptr [esp+CAC]
mov eax, dword ptr [esp+CB0]
mov dword ptr [esp+38], ecx
mov ecx, dword ptr [esp+CB4]
mov dword ptr [esp+44], ecx
mov ecx, dword ptr [esp+CC0]
mov dword ptr [esp+3C], edx
mov edx, dword ptr [esp+CB8]
mov dword ptr [esp+40], eax
mov eax, dword ptr [esp+CBC]
mov dword ptr [esp+54], ecx
mov ecx, dword ptr [esp+CCC]
mov dword ptr [esp+48], edx
mov edx, dword ptr [esp+CC4]
mov dword ptr [esp+50], eax
mov eax, dword ptr [esp+CC8]
mov dword ptr [esp+60], ecx
mov ecx, dword ptr [esp+CD8]
mov dword ptr [esp+58], edx
mov edx, dword ptr [esp+CD0]
mov dword ptr [esp+5C], eax
mov eax, dword ptr [esp+CD4]
mov dword ptr [esp+24], ecx
lea ecx, dword ptr [esp+1C]
mov dword ptr [esp+1C], edx ;鏈鍚?0涓瓧鑺?br />
mov edx, dword ptr [esp+CDC]
mov dword ptr [esp+20], eax
mov eax, dword ptr [esp+CE0]
push ecx
mov ecx, ebx
mov byte ptr [esp+50], 0
mov byte ptr [esp+68], 0
mov dword ptr [esp+2C], edx
mov dword ptr [esp+30], eax
mov byte ptr [esp+34], 0
call 0042BD60
lea edx, dword ptr [esp+38] 鍓?0涓瓧鑺?br />
push edx
mov ecx, ebx
mov byte ptr [ebx+49B160], al
mov byte ptr [ebx+49B161], ah
call 0042BD60
mov word ptr [ebx+49B162], ax
lea eax, dword ptr [esp+50]
push eax
mov ecx, ebx
call 0042BD60
mov word ptr [ebx+49B164], ax
鎻愬彇鎺╃爜鐨勫嚱鏁?0042BD60
push ebx
push esi
mov esi, dword ptr [esp+C] esi = arg1 ;娑堟伅浣?br />
mov eax, esi eax = arg1
xor ebx, ebx ebx = 0
lea edx, dword ptr [eax+1] edx = arg+1 錛屼粠絎簩涓瓧鑺傚紑濮?br />
lea ecx, dword ptr [ecx]
L007:
mov cl, byte ptr [eax]
inc eax
test cl, cl
jnz L007
sub eax, edx
cmp eax, 14 媯鏌ュ弬鏁伴暱搴︽槸鍚︽槸20
jnb L018
pop esi
xor ax, ax
pop ebx
retn 4
L018:
mov eax, 2 ;eax =2
lea edx, dword ptr [esi+1] ;edx鎸囧悜絎簩涓瓧鑺?nbsp; edx = 1
push edi
L022:
mov cl, byte ptr [edx-1] ;cl = arg[edx-1]
movzx esi, byte ptr [edx+8] ;esi = ((long)(arg[edx+8]))
movzx ecx, cl ;ecx = ((long)cl)
add esi, ecx ;esi = esi+ecx
movzx ecx, byte ptr [edx] ;ecx = (long)arg[edx]
cmp ecx, esi ;if(ecx < esi) 璺寵漿鍒?L033
jl L033
lea ecx, dword ptr [eax-2] ; ecx = eax-2
mov edi, 8000 ; edi = 0x8000
sar edi, cl ; edi = edi >> cl
or ebx, edi ; ebx = ebx | edi
L033:
movzx ecx, byte ptr [edx+1] ;ecx = (long)arg[edx+1]
cmp ecx, esi ;if(ecx<esi) 璺寵漿鍒?L040
jl L040
lea ecx, dword ptr [eax-1] ;ecx = eax-2
mov edi, 8000 ;edi = 0x8000
sar edi, cl ;edi = edi >> arg[eax-1]
or ebx, edi ;ebx = ebx | edi
L040:
movzx ecx, byte ptr [edx+2] ;ecx = (long)arg[edx+2]
cmp ecx, esi ;if(ecx < esi) 璺寵漿鍒?L047
jl L047
mov edi, 8000 ;edi = 0x8000
mov ecx, eax ;ecx = eax
sar edi, cl ;edi = edi >> cl
or ebx, edi ;ebx = ebx | edi
L047:
movzx ecx, byte ptr [edx+3] ;ecx = (long)arg[edx+3]
cmp ecx, esi ; if(ecx < esi) 璺寵漿鍒?L054
jl L054
lea ecx, dword ptr [eax+1] ;ecx = eax+1
mov edi, 8000 ;edi = 0x8000
sar edi, cl ;edi = edi >> cl
or ebx, edi ;ebx = ebx | edi
L054:
movzx ecx, byte ptr [edx+4] ;ecx = (long)arg[edx+4]
cmp ecx, esi ; if(ecx < esi) 璺寵漿鍒?L061
jl L061
lea ecx, dword ptr [eax+2] ;ecx = eax+2
mov edi, 8000 ;edi = 0x8000
sar edi, cl ;edi = edi >> cl
or ebx, edi ;ebx = ebx | edi
L061:
movzx ecx, byte ptr [edx+5] ;ecx = (long)arg[edx+5]
cmp ecx, esi ; if(ecx < esi) 璺寵漿鍒?L068
jl L068
lea ecx, dword ptr [eax+3] ;ecx = eax+3
mov edi, 8000 ;edi = 0x8000
sar edi, cl ;edi = edi >> cl
or ebx, edi ;ebx = ebx | edi
L068:
movzx ecx, byte ptr [edx+6] ;ecx = (long)arg[edx+6]
cmp ecx, esi ; if(ecx < esi) 璺寵漿鍒?L075
jl L075
lea ecx, dword ptr [eax+4] ;ecx = eax+4
mov edi, 8000 ;edi = 0x8000
sar edi, cl ;edi = edi >> cl
or ebx, edi ;ebx = ebx | edi
L075:
movzx ecx, byte ptr [edx+7] ;ecx = (long)arg[edx+7]
cmp ecx, esi ; if(ecx < esi) 璺寵漿鍒?L082
jl L082
lea ecx, dword ptr [eax+5] ;ecx = eax+5
mov esi, 8000 ;edi = 0x8000
sar esi, cl ;edi = edi >> cl
or ebx, esi ;ebx = ebx | edi
L082:
add eax, 8 ;eax = eax+8
add edx, 0A ;edx = edx+0x0A
cmp eax, 0A ;if(eax <= 0X0A) 璺寵漿鍒?L022
jle L022
movzx edx, bl ;edx = (long)bl 浣?浣?鎵╁睍
movzx eax, bh ;eax = (long)bh 楂?浣?鎵╁睍
pop edi ;
xor edx, 87 ;edx = edx ^ 0x87
xor eax, 87 ;eax = eax ^ 0x87
shl edx, 8 ;edx << 8
pop esi
or eax, edx ;eax = eax | edx
pop ebx
retn 4
鑷蟲錛屾秷鎭殑鍔犺В瀵嗛儴鍒嗗凡緇忓叏閮ㄨ繕鍘?
lea eax, dword ptr [esp+CAC] ;(3244) 璺濈鏍堥《811涓瓨鍌ㄥ崟鍏?
push eax ;eax鍏ユ爤 瑙e瘑鍚庤瀛樺叆鐨勫湴鍧鍏ユ爤
add edi, 10 ;edi=浠庡瓧絎︿覆絎?7涓瓧鑺傚紑濮嬪線鍚庣殑涓?br />
push edi ;瀵嗘枃鍏ユ爤
call 004A0BD0 ;璺熻繘鍙戠幇榪欐槸鏅氱殑涓嬈¤В瀵嗭紝瑙e瘑鍚庢暟鎹瓨鍦╡sp+CAC閲?
mov byte ptr [esp+eax+CA8], 0
xor eax, eax
mov ecx, 100 ;ecx=100 (256) 寰幆嬈℃暟
lea edi, dword ptr [esp+3F8] ;edi
rep stos dword ptr es:[edi] ;
lea ecx, dword ptr [esp+3F8]
push ecx
lea edx, dword ptr [ebx+3CD864]
push edx
mov ecx, ebx
call 0042C440 ;浜屾瑙e瘑錛岀敓鎴愬洖澶嶅瘑鏂?br />
lea eax, dword ptr [esp+3F8]
push eax
mov ecx, 004D5C70
call 0049F770 ;璋冪敤messageSend(char* msg)
lea eax, dword ptr [esp+CA8]
lea edx, dword ptr [eax+1]
L023:
mov cl, byte ptr [eax]
inc eax
test cl, cl
jnz L023
sub eax, edx
cmp eax, 3C
jnz 0043BF9D
mov ecx, dword ptr [esp+CA8]
mov edx, dword ptr [esp+CAC]
mov eax, dword ptr [esp+CB0]
mov dword ptr [esp+38], ecx
mov ecx, dword ptr [esp+CB4]
mov dword ptr [esp+44], ecx
mov ecx, dword ptr [esp+CC0]
mov dword ptr [esp+3C], edx
mov edx, dword ptr [esp+CB8]
mov dword ptr [esp+40], eax
mov eax, dword ptr [esp+CBC]
mov dword ptr [esp+54], ecx
mov ecx, dword ptr [esp+CCC]
mov dword ptr [esp+48], edx
mov edx, dword ptr [esp+CC4]
mov dword ptr [esp+50], eax
mov eax, dword ptr [esp+CC8]
mov dword ptr [esp+60], ecx
mov ecx, dword ptr [esp+CD8]
mov dword ptr [esp+58], edx
mov edx, dword ptr [esp+CD0]
mov dword ptr [esp+5C], eax
mov eax, dword ptr [esp+CD4]
mov dword ptr [esp+24], ecx
lea ecx, dword ptr [esp+1C]
mov dword ptr [esp+1C], edx
mov edx, dword ptr [esp+CDC]
mov dword ptr [esp+20], eax
mov eax, dword ptr [esp+CE0]
push ecx
mov ecx, ebx
mov byte ptr [esp+50], 0
mov byte ptr [esp+68], 0
mov dword ptr [esp+2C], edx
mov dword ptr [esp+30], eax
mov byte ptr [esp+34], 0
call 0042BD60
lea edx, dword ptr [esp+38]
push edx
mov ecx, ebx
mov byte ptr [ebx+49B160], al
mov byte ptr [ebx+49B161], ah
call 0042BD60
mov word ptr [ebx+49B162], ax
lea eax, dword ptr [esp+50]
push eax
mov ecx, ebx
call 0042BD60
mov word ptr [ebx+49B164], ax
mov ecx, dword ptr [esp+54AC]
mov dword ptr fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn 4
鍒嗘瀽浠ヤ笂浠g爜鍙互綆鍗曞緱鍑轟互涓嬬粨璁?br />
1. 浠巆all 004A0BD0 鐨勮皟鐢ㄥ彲浠ョ畝鍗曞垎鏋愬嚭浜屾瀵嗘枃鍙兘涔熸槸鏍囧噯娑堟伅緇撴瀯
2. 閫氳繃瀵規(guī)瘮鏈洿鏂扮増鏈笌鏈鏂扮増鏈3EF鐨勫彂閫佹儏鍐碉紝鏈洿鏂扮増鏈彂閫?EF鏃訛紝娑堟伅浣撴槸絀猴紝鍛戒護(hù)浣撳叾浠栧弬鏁頒笉涓?錛屽啀緇嗗垎鏋愶紝
鏈洿鏂扮殑鐗堟湰鐨?EF鍏跺疄灝辨槸鍓茶倝鐨勫懡浠?..........
鏈鏂扮増鏈殑瀹㈡埛绔敹鍒頒簩嬈″瘑鏂囧悗錛岀粡榪囦竴浜涘鐞嗭紝浠?EF涓哄懡浠ゅ彂鍚戞湇鍔″櫒
3. 浠巃dd edi, 10鍙互鐚滄祴錛屼簩嬈″瘑鏂囩殑鍛戒護(hù)浣撳彲鑳芥槸榪鋒儜浜虹敤鐨?br />
4. 浠巆all 0049F770榪欎釜璋冪敤鏂畾 esp+3F8 灝辨槸浜屾瑙e瘑鍚庣殑鏄庢枃
5. 瀵逛簬call 0042C440榪欎釜璋冪敤錛屽彲浠ョ寽嫻嬶紝榪欎釜灝辨槸浜屾瑙e瘑鐨勫嚱鏁?br />
6. 鏈嶅姟鍣ㄥ彂鏉ョ殑瀵嗘枃瀵逛簬鏈瑙e瘑鏄病鏈夊獎鍝嶇殑錛屽彧鏄瀹冭繘琛屼簡涓浜涙搷浣滐紝鐢熸垚浜?涓暟騫惰繘琛屽涓嬩繚瀛?br />
mov byte ptr [ebx+49B160], al
mov byte ptr [ebx+49B161], ah
mov word ptr [ebx+49B162], ax
mov word ptr [ebx+49B164], ax
7. 浜屾瑙e瘑鍑芥暟鏈?涓弬鏁? arg1 = dword ptr [ebx+3CD864] , arg2 = [esp+3F8]
涔熷氨鏄牴鎹甦word ptr [ebx+3CD864]鏉ョ敓鎴愯В瀵嗘槑鏂囷紝騫跺瓨鍏ュ湴鍧esp+3F8錛屼簬鏄痚bx+3CD864灝辨垚浜嗚В瀵嗙殑鍏抽敭
........瀹㈡埛绔笌Gateserver,Loginserver鐨勬暟鎹簰鎹紝鐪佺暐
1. 瀹㈡埛绔悜Gameserver鍙戦乕**鐧誨綍鐢ㄦ埛鍚?瑙掕壊鍚?楠岃瘉鏁?/楠岃瘉鏁?/鐗堟湰楠岃瘉鏁?1/0]
2. Gameserver鍚戝鎴風(fēng)鍙戦佸瘑鏂囷紝綾諱技#eLrBHMNx<F=hgmlYA]X]ENtpGM`X@?PuN`LwT_m>RmleJ_l{PAMHQ?pUCpdbENa<F`pjBllQC=HSC\\pT?LduQ_y=PQM>JptK!
3. 瀹㈡埛绔悜Gameserver鍙戦佽В瀵嗗悗瀵嗘枃錛岀被浼?3<<<<<Jx?<<<<<<<<A>xZCNLSHoPpAnQRF?ljIaaUPmlSF^L_BmtfFODJA_X\\A]T`GNlq@L!
........嬈㈣繋淇℃伅錛岃澶囦俊鎭瓑鐪佺暐
鏁版嵁鏍煎紡
[#][鏍囪瘑浣峕[鎸囦護(hù)澶碷[娑堟伅浣揮[!]
渚嬪 #3<<<<<B\\<<<<<<<<<mi{EhL!
鍛戒護(hù)緇撴瀯浣?br />
typedef struct tag_TDEFAULTMESSAGE
{
int nRecog;
WORD wIdent; 3EF
WORD wParam;
WORD wTag;
WORD wSeries;
} _TDEFAULTMESSAGE, *_LPTDEFAULTMESSAGE;
瑙e瘑鍛戒護(hù)浣?lt;<<<<Jx?<<<<<<<<寰楀埌wIdent鍊兼槸3EF(1007)錛孫D鎵撳紑Mir3.exe錛屾煡鎵懼父閲?00003EF錛岃窡韙繘鍏ワ紝寰楀埌濡備笅浠g爜
>>Method1(鏈煡鍙傛暟)
push esi
push edi
push 0
push 0
push 0
push 0
mov esi, ecx
push 3EF
lea edi, dword ptr [esi+18] ;esi+18 鏄懡浠ょ粨鏋勪綋鐨勯鍦板潃
push edi ;鍛戒護(hù)緇撴瀯浣撻鍦板潃
call 004A0D00 ;鐢熸垚鍛戒護(hù)緇撴瀯浣?(edi,3ef,0,0,0,0)
mov eax, dword ptr [esp+C] ; eax淇濆瓨絎竴涓弬鏁?br />
push 0
push eax
push edi
mov ecx, esi ;浼犻抰his鎸囬拡錛?br />
call 0049E450 ;鍙戦佹暟鎹紝arg3: 0, arg2: 絎竴涓弬鏁? arg1: 鍛戒護(hù)緇撴瀯浣?br />
pop edi
pop esi
retn 4
綆鍗曞垎鏋愶紝鍏ユ爤鐨?涓?鍜?EF,鍒欏搴旂粨鏋勪綋,璇ュ嚱鏁拌嚦灝?涓弬鏁幫紝鐩墠涓嶇煡榪欎釜鍙傛暟鏄粈涔堟剰鎬濓紝璺熻繘0049E450鐪嬬湅
>>Method2(鍛戒護(hù)緇撴瀯浣?鏈煡鍙傛暟,0)
mov eax, dword ptr [esp+4] ;eax=鍛戒護(hù)緇撴瀯浣?br />
push ebx
push ebp
push esi
mov esi, ecx ;寰楀埌this鎸囬拡
push 20
lea ebp, dword ptr [esi+24] ;esi+18鏄懡浠ょ粨鏋勪綋錛屽姞瀵嗗懡浠ょ粨鏋勪綋寰楀埌鐨勫瓧絎︿覆淇濆瓨鍦╡si+24涓?br />
push ebp
push eax
call 004A0CA0 ;璺熻繘鍙戠幇鏄姞瀵嗗懡浠ょ粨鏋勪綋,arg3: 20(32), arg2: esi+24, arg1: 鍛戒護(hù)緇撴瀯浣撳湴鍧
mov eax, dword ptr [esi+14] ;eax=esi+14=鏍囪瘑浣?br />
cmp eax, 9
jl L015 ;濡傛灉鏍囪瘑浣嶅皬浜?錛屽垯璺沖埌L015
mov dword ptr [esi+14], 1 ;鍚﹀垯鏍囪瘑浣嶉噸璁句負(fù)1
jmp L017
L015:
inc eax
mov dword ptr [esi+14], eax ;鏍囪瘑浣嶈嚜鍔?
L017:
mov edx, dword ptr [esp+14] ;edx=絎?涓弬鏁?br />
test edx, edx ;
je L048 ;濡傛灉絎?涓弬鏁頒負(fù)0錛屽垯璺寵漿鍒癓048
mov eax, dword ptr [esp+18] ;eax=絎?涓弬鏁? 0
test eax, eax
push edi
jnz L031 ;eax涓嶇瓑浜?鍒欒煩杞?br />
mov eax, edx ;eax=絎?涓弬鏁?br />
lea edi, dword ptr [eax+1]
L026:
mov cl, byte ptr [eax] ;cl=絎?涓弬鏁扮1涓瓧鑺?br />
inc eax ;eax
test cl, cl ;寰幆寰楀埌絎竴涓弬鏁扮殑闀垮害
jnz L026 ;娌″埌瀛楃涓插熬鍒欑戶緇驚鐜?br />
sub eax, edi
L031:
push 2000
push eax
lea edi, dword ptr [esi+44]
push edi
push edx
call 004A0B10 ;璋冪敤鍔犲瘑鍑芥暟錛屽皢edx鍔犲瘑錛屼繚瀛樺湪esi+44涓?br />
mov ecx, dword ptr [esi+14]
push edi
push ebp
push ecx
lea ebx, dword ptr [esi+2044]
push 004CBFE4 ; #%d%s%s!
push ebx
call 004BB568
add esp, 14
pop edi
jmp L056
L048:
mov edx, dword ptr [esi+14]
push ebp
push edx
lea ebx, dword ptr [esi+2044]
push 004CBFC4 ; #%d%s!
push ebx
call 004BB568 ;sprintf 鏍煎紡鍖栧彂閫佺粰鏈嶅姟鍣ㄧ鐨勬暟鎹?br />
add esp, 10
L056:
mov eax, ebx
lea edx, dword ptr [eax+1]
L058:
mov cl, byte ptr [eax]
inc eax ;榪欎釜寰幆寰楀埌鏁版嵁闀垮害
test cl, cl
jnz L058
push 0
sub eax, edx
push eax ; 鏁版嵁闀垮害
mov eax, dword ptr [esi+6044]
push ebx ; Data 錛岃鍙戦佺殑鏁版嵁
push eax ; Socket瀵硅薄
call <jmp.&WS2_32.#19> ;榪欓噷鏄皟鐢╯end(Socket瀵硅薄, 瑕佸彂閫佺殑鏁版嵁, 鏁版嵁闀垮害, 0 (flag));
pop esi
pop ebp
pop ebx
retn 0C
L017鍜孡031璇存槑Method1鍜孧ethod2涓殑鏈煡鍙傛暟灝辨槸鏄庢枃娑堟伅浣擄紝Method1鍙湁1涓秷鎭綋鍙傛暟
OD鎵撳紑Mir3.exe(Mir3G_20070108) -> ASCII ->鎵懼埌**%s/%s/%d/%d/%d/1/%d->鍙屽嚮錛屽緱鍒板涓嬩唬鐮?/p>
榪欐浠g爜鏄皢鍑犱釜鍙傛暟錛屼嬌鐢╯printf鐢熸垚瀛楃涓詫紝鐒跺悗6BIT鍔犲瘑錛屼互#%d%s!鏍煎紡鍙戦佸埌鏈嶅姟鍣ㄧ
0049E2D0 mov eax, dword ptr [esp+14] ; eax=arg5錛堢5涓弬鏁幫級
0049E2D4 sub esp, 600 ; 棰勭暀1536涓瓨鍌ㄥ崟鍏?br />
0049E2DA push esi
0049E2DB push edi
0049E2DC mov edi, dword ptr [<&USER32.wsprint>; USER32.wsprintfA
0049E2E2 push eax ; /<%d> ;eax鍏ユ爤
**%s/%s/%d/%d/%d/1/arg5
0049E2E3 mov eax, dword ptr [esp+618] ; | eax = arg3
0049E2EA mov esi, ecx ; |
0049E2EC mov ecx, dword ptr [esp+61C] ; | ecx = arg4
0049E2F3 mov edx, ecx ; | edx=ecx=arg4
0049E2F5 xor edx, FA0280AF ; | edx=arg4寮傛垨FA0280AF
0049E2FB push edx ; |<%d> edx鍏ユ爤
**%s/%s/%d/%d/arg4寮傛垨FA0280AF/1/arg5
0049E2FC mov edx, eax ; | edx=eax=arg3
0049E2FE xor edx, ecx ; | edx=arg3寮傛垨arg4
0049E300 mov ecx, dword ptr [esp+614] ; | ecx=arg1
0049E307 xor edx, 5580AF27 ; | edx = edx寮傛垨5580AF27
0049E30D push edx ; |<%d> edx鍏ユ爤
**%s/%s/%d/arg3寮傛垨arg4鍐嶅紓鎴?580AF27/arg4寮傛垨FA0280AF/1/arg5
0049E30E xor eax, 3EB2C5CC ; | eax = arg3寮傛垨3EB2C5CC
0049E313 push eax ; |<%d>
**%s/%s/arg3寮傛垨3EB2C5CC/arg3寮傛垨arg4鍐嶅紓鎴?580AF27/arg4寮傛垨FA0280AF/1/arg5
0049E314 mov eax, dword ptr [esp+620] ; | eax = arg2
0049E31B push eax ; |<%s>
**%s/arg2/arg3寮傛垨3EB2C5CC/arg3寮傛垨arg4鍐嶅紓鎴?580AF27/arg4寮傛垨FA0280AF/1/arg5
0049E31C push ecx ; |<%s>
**arg1/arg2/arg3寮傛垨3EB2C5CC/arg3寮傛垨arg4鍐嶅紓鎴?580AF27/arg4寮傛垨FA0280AF/1/arg5
0049E31D lea edx, dword ptr [esp+220] ; | edx 鎸囧悜涓婇潰棰勭暀鐨?536涓瓨鍌ㄥ崟鍏冧腑鏈鍚?12涓崟鍏冪殑棣栧湴鍧
0049E324 push 004CBFCC ; |**%s/%s/%d/%d/%d/1/%d
0049E329 push edx ; |s
0049E32A call edi ; \wsprintfA edx鎸囧悜鐢熸垚鐨勬槑鏂囧瓧絎︿覆棣栧湴鍧
0049E32C add esp, 20 ; 鍓嶇Щ32涓瓨鍌ㄥ崟鍏?br />
0049E32F push 1FF 512鍏ユ爤 <鍔犲瘑鍑芥暟絎?涓弬鏁?gt;
0049E334 lea eax, dword ptr [esp+20C] eax =鏄庢枃瀛楃涓?br />
0049E33B push eax ; /String
0049E33C call dword ptr [<&KERNEL32.lstrlenA>] ; \lstrlenA 寰楀埌鏄庢枃鐨勯暱搴︼紝淇濆瓨鍦╡ax涓?br />
0049E342 push eax eax鍏ユ爤 鏄庢枃闀垮害鍏ユ爤<鍔犲瘑鍑芥暟絎?涓弬鏁?gt;
0049E343 lea ecx, dword ptr [esp+10] ecx=絎竴嬈″叆鏍堢殑edi鐨勫鹼紝搴旇鏄煇涓垚鍛樺彉閲?br />
0049E347 push ecx ecx鍏ユ爤<鍔犲瘑鍑芥暟絎?涓弬鏁?gt;
0049E348 lea edx, dword ptr [esp+214]
0049E34F push edx 鏄庢枃瀛楃涓查<鍔犲瘑鍑芥暟絎?涓弬鏁?gt;
0049E350 call 004A0B10 璋冪敤鍔犲瘑鍑芥暟
fnEncode(char *strSrc, char *strDest, int lenSrc, 512)
...................
鍚庨潰鏄彂閫佷俊鎭?/p>