此程序建立了一个TCP服务端,端口号为10010,之后accept等待连接,如果接受到连接,那么就发送一些欢迎信息,以及提示信息---发送quit退出.

之后不停地调用recv,如果接受到数据,那么判断是否为quit,是则退出,否则进入401e00对接收到的数据进行加密

,之后把加密后的数据发送回客户端:

之后跳回recv等待.

加密过程401e00抠出,如下:

;第一步 抠出加密函数
.
.model flat,stdcall option casemap:none include msvcrt.inc ;
include windows.inc ;
include kernel32.inc ;
;
includelib msvcrt.lib
includelib KERNEL32.LIB .data format db "%s",
string db "", ecode db 041h, 00eh, 097h, 0a3h, 02bh, 05ah, 0b7h, 06dh, 039h, 030h, 036h src db dup()
buf db dup() var_98C dd 000000000h
var_988 dd 000000000h
var_984 dd 000000002h var_980 dd 000802001h, 000002081h, 000002081h, 000000080h, 000802080h, 000800081h, 000800001h, 000002001h, 000000000h, 000802000h, 000802000h, 000802081h, 000000081h, 000000000h, 000800080h, 000800001h
dd 000000001h, 000002000h, 000800000h, 000802001h, 000000080h, 000800000h, 000002001h, 000002080h, 000800081h, 000000001h, 000002080h, 000800080h, 000002000h, 000802080h, 000802081h, 000000081h
dd 000800080h, 000800001h, 000802000h, 000802081h, 000000081h, 000000000h, 000000000h, 000802000h, 000002080h, 000800080h, 000800081h, 000000001h, 000802001h, 000002081h, 000002081h, 000000080h
dd 000802081h, 000000081h, 000000001h, 000002000h, 000800001h, 000002001h, 000802080h, 000800081h, 000002001h, 000002080h, 000800000h, 000802001h, 000000080h, 000800000h, 000002000h, 000802080h
var_880 dd 080108020h, 080008000h, 000008000h, 000108020h, 000100000h, 000000020h, 080100020h, 080008020h, 080000020h, 080108020h, 080108000h, 080000000h, 080008000h, 000100000h, 000000020h, 080100020h
dd 000108000h, 000100020h, 080008020h, 000000000h, 080000000h, 000008000h, 000108020h, 080100000h, 000100020h, 080000020h, 000000000h, 000108000h, 000008020h, 080108000h, 080100000h, 000008020h
dd 000000000h, 000108020h, 080100020h, 000100000h, 080008020h, 080100000h, 080108000h, 000008000h, 080100000h, 080008000h, 000000020h, 080108020h, 000108020h, 000000020h, 000008000h, 080000000h
dd 000008020h, 080108000h, 000100000h, 080000020h, 000100020h, 080008020h, 080000020h, 000100020h, 000108000h, 000000000h, 080008000h, 000008020h, 080000000h, 080100020h, 080108020h, 000108000h
var_780 dd 001010400h, 000000000h, 000010000h, 001010404h, 001010004h, 000010404h, 000000004h, 000010000h, 000000400h, 001010400h, 001010404h, 000000400h, 001000404h, 001010004h, 001000000h, 000000004h
dd 000000404h, 001000400h, 001000400h, 000010400h, 000010400h, 001010000h, 001010000h, 001000404h, 000010004h, 001000004h, 001000004h, 000010004h, 000000000h, 000000404h, 000010404h, 001000000h
dd 000010000h, 001010404h, 000000004h, 001010000h, 001010400h, 001000000h, 001000000h, 000000400h, 001010004h, 000010000h, 000010400h, 001000004h, 000000400h, 000000004h, 001000404h, 000010404h
dd 001010404h, 000010004h, 001010000h, 001000404h, 001000004h, 000000404h, 000010404h, 001010400h, 000000404h, 001000400h, 001000400h, 000000000h, 000010004h, 000010400h, 000000000h, 001010004h
var_680 dd 020000010h, 020400000h, 000004000h, 020404010h, 020400000h, 000000010h, 020404010h, 000400000h, 020004000h, 000404010h, 000400000h, 020000010h, 000400010h, 020004000h, 020000000h, 000004010h
dd 000000000h, 000400010h, 020004010h, 000004000h, 000404000h, 020004010h, 000000010h, 020400010h, 020400010h, 000000000h, 000404010h, 020404000h, 000004010h, 000404000h, 020404000h, 020000000h
dd 020004000h, 000000010h, 020400010h, 000404000h, 020404010h, 000400000h, 000004010h, 020000010h, 000400000h, 020004000h, 020000000h, 000004010h, 020000010h, 020404010h, 000404000h, 020400000h
dd 000404010h, 020404000h, 000000000h, 020400010h, 000000010h, 000004000h, 020400000h, 000404010h, 000004000h, 000400010h, 020004010h, 000000000h, 020404000h, 020000000h, 000400010h, 020004010h
var_580 dd 010001040h, 000001000h, 000040000h, 010041040h, 010000000h, 010001040h, 000000040h, 010000000h, 000040040h, 010040000h, 010041040h, 000041000h, 010041000h, 000041040h, 000001000h, 000000040h
dd 010040000h, 010000040h, 010001000h, 000001040h, 000041000h, 000040040h, 010040040h, 010041000h, 000001040h, 000000000h, 000000000h, 010040040h, 010000040h, 010001000h, 000041040h, 000040000h
dd 000041040h, 000040000h, 010041000h, 000001000h, 000000040h, 010040040h, 000001000h, 000041040h, 010001000h, 000000040h, 010000040h, 010040000h, 010040040h, 010000000h, 000040000h, 010001040h
dd 000000000h, 010041040h, 000040040h, 010000040h, 010040000h, 010001000h, 010001040h, 000000000h, 010041040h, 000041000h, 000041000h, 000001040h, 000001040h, 000040040h, 010000000h, 010041000h
var_480 dd 000000100h, 002080100h, 002080000h, 042000100h, 000080000h, 000000100h, 040000000h, 002080000h, 040080100h, 000080000h, 002000100h, 040080100h, 042000100h, 042080000h, 000080100h, 040000000h
dd 002000000h, 040080000h, 040080000h, 000000000h, 040000100h, 042080100h, 042080100h, 002000100h, 042080000h, 040000100h, 000000000h, 042000000h, 002080100h, 002000000h, 042000000h, 000080100h
dd 000080000h, 042000100h, 000000100h, 002000000h, 040000000h, 002080000h, 042000100h, 040080100h, 002000100h, 040000000h, 042080000h, 002080100h, 040080100h, 000000100h, 002000000h, 042080000h
dd 042080100h, 000080100h, 042000000h, 042080100h, 002080000h, 000000000h, 040080000h, 042000000h, 000080100h, 002000100h, 040000100h, 000080000h, 000000000h, 040080000h, 002080100h, 040000100h
var_380 dd 000200000h, 004200002h, 004000802h, 000000000h, 000000800h, 004000802h, 000200802h, 004200800h, 004200802h, 000200000h, 000000000h, 004000002h, 000000002h, 004000000h, 004200002h, 000000802h
dd 004000800h, 000200802h, 000200002h, 004000800h, 004000002h, 004200000h, 004200800h, 000200002h, 004200000h, 000000800h, 000000802h, 004200802h, 000200800h, 000000002h, 004000000h, 000200800h
dd 004000000h, 000200800h, 000200000h, 004000802h, 004000802h, 004200002h, 004200002h, 000000002h, 000200002h, 004000000h, 004000800h, 000200000h, 004200800h, 000000802h, 000200802h, 004200800h
dd 000000802h, 004000002h, 004200802h, 004200000h, 000200800h, 000000000h, 000000002h, 004200802h, 000000000h, 000200802h, 004200000h, 000000800h, 004000002h, 004000800h, 000000800h, 000200002h
var_280 dd 000000208h, 008020200h, 000000000h, 008020008h, 008000200h, 000000000h, 000020208h, 008000200h, 000020008h, 008000008h, 008000008h, 000020000h, 008020208h, 000020008h, 008020000h, 000000208h
dd 008000000h, 000000008h, 008020200h, 000000200h, 000020200h, 008020000h, 008020008h, 000020208h, 008000208h, 000020200h, 000020000h, 008000208h, 000000008h, 008020208h, 000000200h, 008000000h
dd 008020200h, 008000000h, 000020008h, 000000208h, 000020000h, 008020200h, 008000200h, 000000000h, 000000200h, 000020008h, 008020208h, 008000200h, 008000008h, 000000200h, 000000000h, 008020008h
dd 008000208h, 000020000h, 008000000h, 008020208h, 000000008h, 000020208h, 000020200h, 008000008h, 008020000h, 008000208h, 000000208h, 008020000h, 000020208h, 000000008h, 008020008h, 000020200h
Dst dd 002002608h
var_17C dd 010200e3ah, 000242327h, 004000431h, 000042834h, 020002b26h, 000241613h, 00008003fh, 001203811h, 020001f00h, 00020340eh, 020093015h, 005000b0ch, 02008030eh, 001000525h, 0000d3c13h
dd 020103f04h, 008001a21h, 000100e3ah, 003000816h, 020181107h, 001002b30h, 020002432h, 00300330bh, 020081c0dh, 00220052dh, 002082910h, 002002413h, 000081a25h, 00030321ch, 000001d29h, 00402090ah
dd 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h .code GetXor proc retn GetXor endp Ecode proc ;arg_0:dword,len:dword
push ebp
mov ebp,esp
pushad
xor esi,esi
mov ebx,[ebp+0ch]
shr ebx, ; ebx = 数据长度
add esp, 10h
xor edi, edi
mov [var_984], ebx
cmp ebx, esi
jbe loc_40332F
lea esp, [esp+] mov esi, [ebp+] loc_403100: ; CODE XREF: sub_401E00+1529j
mov edx, [ebp+]
mov eax, [edx+edi*]
mov edx, [edx+edi*+]
mov ecx, eax
mov ebx, eax
shr ebx, 10h
and ecx, 0FF0000h
or ecx, ebx
mov ebx, eax
and eax, 0FF00h
shl ebx, 10h
or ebx, eax
mov eax, edx
shl ebx,
shr ecx,
or ecx, ebx
mov ebx, edx
and eax, 0FF0000h
shr ebx, 10h
or eax, ebx
mov ebx, edx
and edx, 0FF00h
shl ebx, 10h
or ebx, edx
shr eax,
shl ebx,
or eax, ebx
mov edx, ecx
shr edx,
xor edx, eax
and edx, 0F0F0F0Fh
xor eax, edx
shl edx,
xor ecx, edx
mov edx, ecx
shr edx, 10h
xor edx, eax
and edx, 0FFFFh
xor eax, edx
shl edx, 10h
xor ecx, edx
mov edx, eax
shr edx,
xor edx, ecx
and edx, 33333333h
xor ecx, edx
add edx, edx
add edx, edx
xor eax, edx
mov edx, eax
shr edx,
xor edx, ecx
and edx, 0FF00FFh
xor ecx, edx
shl edx,
xor eax, edx
mov edx, ecx
shr edx,
xor edx, eax
and edx, 55555555h
lea ebx, [edx+edx]
xor ebx, ecx
xor eax, edx
rol ebx,
rol eax,
xor ebp, ebp
mov [var_98C], ebp
mov ecx, eax loc_4031C4: ; CODE XREF: sub_401E00+145Cj
mov eax, [ebp*+Dst]
xor eax, ecx
mov edx, ecx
ror edx,
xor edx, [ebp*+var_17C]
mov [var_988], ebx
mov ebx, ecx
mov ecx, eax
shr ecx,
and ecx, 3Fh
mov ecx, [ecx*+var_680]
mov ebp, edx
shr ebp,
and ebp, 3Fh
or ecx, [ebp*+var_480]
mov ebp, eax
shr ebp, 10h
and ebp, 3Fh
or ecx, [ebp*+var_980]
mov ebp, edx
shr ebp, 10h
and ebp, 3Fh
or ecx, [ebp*+var_280]
mov ebp, eax
shr ebp, 18h
and ebp, 3Fh
or ecx, [ebp*+var_880]
mov ebp, edx
shr ebp, 18h
and ebp, 3Fh
or ecx, [ebp*+var_780]
mov ebp, [var_98C]
and eax, 3Fh
or ecx, [eax*+var_580]
and edx, 3Fh
or ecx, [edx*+var_380]
add ebp,
xor ecx, [var_988]
mov [var_98C], ebp
cmp ebp, 20h
jnz loc_4031C4
ror ecx,
ror ebx,
mov edx, ecx
shr edx,
mov eax, ebx
xor edx, eax
and edx, 55555555h
xor eax, edx
add edx, edx
xor ecx, edx
mov edx, eax
shr edx,
xor edx, ecx
and edx, 0FF00FFh
xor ecx, edx
shl edx,
xor eax, edx
mov edx, eax
shr edx,
xor edx, ecx
and edx, 33333333h
xor ecx, edx
add edx, edx
add edx, edx
xor eax, edx
mov edx, ecx
shr edx, 10h
xor edx, eax
and edx, 0FFFFh
xor eax, edx
shl edx, 10h
xor ecx, edx
mov ebx, ecx
shr ebx,
xor ebx, eax
and ebx, 0F0F0F0Fh
mov edx, ebx
shl edx,
xor edx, ecx
mov ebp, edx
mov ecx, edx
shr ecx, 10h
and ebp, 0FF0000h
or ebp, ecx
mov ecx, edx
xor eax, ebx
and edx, 0FF00h
shl ecx, 10h
or ecx, edx
mov edx, eax
and edx, 0FF0000h
mov ebx, eax
shr ebx, 10h
or edx, ebx
mov ebx, eax
shl ebx, 10h
and eax, 0FF00h
shl ecx,
or ebx, eax
shr ebp,
or ebp, ecx
mov ecx, esi
shr edx,
shl ebx,
or edx, ebx
mov [ecx+edi*], ebp
mov [ecx+edi*+], edx
add edi,
cmp edi, [var_984]
jb loc_403100
loc_40332F:
popad
sub esp,10h
pop ebp
ret Ecode endp main: ;for test push 0ah
push offset string
call Ecode ret end main
;第二步 化解加密函数
.
.model flat,stdcall option casemap:none include msvcrt.inc ;
include windows.inc ;
include kernel32.inc ;
;
includelib msvcrt.lib
includelib KERNEL32.LIB .data format db "%s",
string db "", ecode db 041h, 00eh, 097h, 0a3h, 02bh, 05ah, 0b7h, 06dh, 039h, 030h, 036h src db dup()
buf db dup() var_98C dd 000000000h
var_988 dd 000000000h
var_984 dd 000000002h var_980 dd 000802001h, 000002081h, 000002081h, 000000080h, 000802080h, 000800081h, 000800001h, 000002001h, 000000000h, 000802000h, 000802000h, 000802081h, 000000081h, 000000000h, 000800080h, 000800001h
dd 000000001h, 000002000h, 000800000h, 000802001h, 000000080h, 000800000h, 000002001h, 000002080h, 000800081h, 000000001h, 000002080h, 000800080h, 000002000h, 000802080h, 000802081h, 000000081h
dd 000800080h, 000800001h, 000802000h, 000802081h, 000000081h, 000000000h, 000000000h, 000802000h, 000002080h, 000800080h, 000800081h, 000000001h, 000802001h, 000002081h, 000002081h, 000000080h
dd 000802081h, 000000081h, 000000001h, 000002000h, 000800001h, 000002001h, 000802080h, 000800081h, 000002001h, 000002080h, 000800000h, 000802001h, 000000080h, 000800000h, 000002000h, 000802080h
var_880 dd 080108020h, 080008000h, 000008000h, 000108020h, 000100000h, 000000020h, 080100020h, 080008020h, 080000020h, 080108020h, 080108000h, 080000000h, 080008000h, 000100000h, 000000020h, 080100020h
dd 000108000h, 000100020h, 080008020h, 000000000h, 080000000h, 000008000h, 000108020h, 080100000h, 000100020h, 080000020h, 000000000h, 000108000h, 000008020h, 080108000h, 080100000h, 000008020h
dd 000000000h, 000108020h, 080100020h, 000100000h, 080008020h, 080100000h, 080108000h, 000008000h, 080100000h, 080008000h, 000000020h, 080108020h, 000108020h, 000000020h, 000008000h, 080000000h
dd 000008020h, 080108000h, 000100000h, 080000020h, 000100020h, 080008020h, 080000020h, 000100020h, 000108000h, 000000000h, 080008000h, 000008020h, 080000000h, 080100020h, 080108020h, 000108000h
var_780 dd 001010400h, 000000000h, 000010000h, 001010404h, 001010004h, 000010404h, 000000004h, 000010000h, 000000400h, 001010400h, 001010404h, 000000400h, 001000404h, 001010004h, 001000000h, 000000004h
dd 000000404h, 001000400h, 001000400h, 000010400h, 000010400h, 001010000h, 001010000h, 001000404h, 000010004h, 001000004h, 001000004h, 000010004h, 000000000h, 000000404h, 000010404h, 001000000h
dd 000010000h, 001010404h, 000000004h, 001010000h, 001010400h, 001000000h, 001000000h, 000000400h, 001010004h, 000010000h, 000010400h, 001000004h, 000000400h, 000000004h, 001000404h, 000010404h
dd 001010404h, 000010004h, 001010000h, 001000404h, 001000004h, 000000404h, 000010404h, 001010400h, 000000404h, 001000400h, 001000400h, 000000000h, 000010004h, 000010400h, 000000000h, 001010004h
var_680 dd 020000010h, 020400000h, 000004000h, 020404010h, 020400000h, 000000010h, 020404010h, 000400000h, 020004000h, 000404010h, 000400000h, 020000010h, 000400010h, 020004000h, 020000000h, 000004010h
dd 000000000h, 000400010h, 020004010h, 000004000h, 000404000h, 020004010h, 000000010h, 020400010h, 020400010h, 000000000h, 000404010h, 020404000h, 000004010h, 000404000h, 020404000h, 020000000h
dd 020004000h, 000000010h, 020400010h, 000404000h, 020404010h, 000400000h, 000004010h, 020000010h, 000400000h, 020004000h, 020000000h, 000004010h, 020000010h, 020404010h, 000404000h, 020400000h
dd 000404010h, 020404000h, 000000000h, 020400010h, 000000010h, 000004000h, 020400000h, 000404010h, 000004000h, 000400010h, 020004010h, 000000000h, 020404000h, 020000000h, 000400010h, 020004010h
var_580 dd 010001040h, 000001000h, 000040000h, 010041040h, 010000000h, 010001040h, 000000040h, 010000000h, 000040040h, 010040000h, 010041040h, 000041000h, 010041000h, 000041040h, 000001000h, 000000040h
dd 010040000h, 010000040h, 010001000h, 000001040h, 000041000h, 000040040h, 010040040h, 010041000h, 000001040h, 000000000h, 000000000h, 010040040h, 010000040h, 010001000h, 000041040h, 000040000h
dd 000041040h, 000040000h, 010041000h, 000001000h, 000000040h, 010040040h, 000001000h, 000041040h, 010001000h, 000000040h, 010000040h, 010040000h, 010040040h, 010000000h, 000040000h, 010001040h
dd 000000000h, 010041040h, 000040040h, 010000040h, 010040000h, 010001000h, 010001040h, 000000000h, 010041040h, 000041000h, 000041000h, 000001040h, 000001040h, 000040040h, 010000000h, 010041000h
var_480 dd 000000100h, 002080100h, 002080000h, 042000100h, 000080000h, 000000100h, 040000000h, 002080000h, 040080100h, 000080000h, 002000100h, 040080100h, 042000100h, 042080000h, 000080100h, 040000000h
dd 002000000h, 040080000h, 040080000h, 000000000h, 040000100h, 042080100h, 042080100h, 002000100h, 042080000h, 040000100h, 000000000h, 042000000h, 002080100h, 002000000h, 042000000h, 000080100h
dd 000080000h, 042000100h, 000000100h, 002000000h, 040000000h, 002080000h, 042000100h, 040080100h, 002000100h, 040000000h, 042080000h, 002080100h, 040080100h, 000000100h, 002000000h, 042080000h
dd 042080100h, 000080100h, 042000000h, 042080100h, 002080000h, 000000000h, 040080000h, 042000000h, 000080100h, 002000100h, 040000100h, 000080000h, 000000000h, 040080000h, 002080100h, 040000100h
var_380 dd 000200000h, 004200002h, 004000802h, 000000000h, 000000800h, 004000802h, 000200802h, 004200800h, 004200802h, 000200000h, 000000000h, 004000002h, 000000002h, 004000000h, 004200002h, 000000802h
dd 004000800h, 000200802h, 000200002h, 004000800h, 004000002h, 004200000h, 004200800h, 000200002h, 004200000h, 000000800h, 000000802h, 004200802h, 000200800h, 000000002h, 004000000h, 000200800h
dd 004000000h, 000200800h, 000200000h, 004000802h, 004000802h, 004200002h, 004200002h, 000000002h, 000200002h, 004000000h, 004000800h, 000200000h, 004200800h, 000000802h, 000200802h, 004200800h
dd 000000802h, 004000002h, 004200802h, 004200000h, 000200800h, 000000000h, 000000002h, 004200802h, 000000000h, 000200802h, 004200000h, 000000800h, 004000002h, 004000800h, 000000800h, 000200002h
var_280 dd 000000208h, 008020200h, 000000000h, 008020008h, 008000200h, 000000000h, 000020208h, 008000200h, 000020008h, 008000008h, 008000008h, 000020000h, 008020208h, 000020008h, 008020000h, 000000208h
dd 008000000h, 000000008h, 008020200h, 000000200h, 000020200h, 008020000h, 008020008h, 000020208h, 008000208h, 000020200h, 000020000h, 008000208h, 000000008h, 008020208h, 000000200h, 008000000h
dd 008020200h, 008000000h, 000020008h, 000000208h, 000020000h, 008020200h, 008000200h, 000000000h, 000000200h, 000020008h, 008020208h, 008000200h, 008000008h, 000000200h, 000000000h, 008020008h
dd 008000208h, 000020000h, 008000000h, 008020208h, 000000008h, 000020208h, 000020200h, 008000008h, 008020000h, 008000208h, 000000208h, 008020000h, 000020208h, 000000008h, 008020008h, 000020200h
Dst dd 002002608h
var_17C dd 010200e3ah, 000242327h, 004000431h, 000042834h, 020002b26h, 000241613h, 00008003fh, 001203811h, 020001f00h, 00020340eh, 020093015h, 005000b0ch, 02008030eh, 001000525h, 0000d3c13h
dd 020103f04h, 008001a21h, 000100e3ah, 003000816h, 020181107h, 001002b30h, 020002432h, 00300330bh, 020081c0dh, 00220052dh, 002082910h, 002002413h, 000081a25h, 00030321ch, 000001d29h, 00402090ah
dd 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h .code InitXor proc near
push ebp
mov ebp,esp
mov edx, [ebp+]
mov eax, [edx+edi*]
mov edx, [edx+edi*+]
mov ecx, eax
mov ebx, eax
shr ebx, 10h
and ecx, 0FF0000h
or ecx, ebx
mov ebx, eax
and eax, 0FF00h
shl ebx, 10h
or ebx, eax
mov eax, edx
shl ebx,
shr ecx,
or ecx, ebx
mov ebx, edx
and eax, 0FF0000h
shr ebx, 10h
or eax, ebx
mov ebx, edx
and edx, 0FF00h
shl ebx, 10h
or ebx, edx
shr eax,
shl ebx,
or eax, ebx
mov edx, ecx
shr edx,
xor edx, eax
and edx, 0F0F0F0Fh
xor eax, edx
shl edx,
xor ecx, edx
mov edx, ecx
shr edx, 10h
xor edx, eax
and edx, 0FFFFh
xor eax, edx
shl edx, 10h
xor ecx, edx
mov edx, eax
shr edx,
xor edx, ecx
and edx, 33333333h
xor ecx, edx
add edx, edx
add edx, edx
xor eax, edx
mov edx, eax
shr edx,
xor edx, ecx
and edx, 0FF00FFh
xor ecx, edx
shl edx,
xor eax, edx
mov edx, ecx
shr edx,
xor edx, eax
and edx, 55555555h
lea ebx, [edx+edx]
xor ebx, ecx
xor eax, edx
rol ebx,
rol eax,
pop ebp
retn InitXor endp LoopXor proc near ; 操作 ebx,eax,返回 ebx,ecx xor ebp, ebp
mov [var_98C], ebp
mov ecx, eax loc_4031C4: ; CODE XREF: sub_401E00+145Cj
mov eax, [ebp*+Dst]
xor eax, ecx
mov edx, ecx
ror edx,
xor edx, [ebp*+var_17C]
mov [var_988], ebx
mov ebx, ecx
mov ecx, eax
shr ecx,
and ecx, 3Fh
mov ecx, [ecx*+var_680]
mov ebp, edx
shr ebp,
and ebp, 3Fh
or ecx, [ebp*+var_480]
mov ebp, eax
shr ebp, 10h
and ebp, 3Fh
or ecx, [ebp*+var_980]
mov ebp, edx
shr ebp, 10h
and ebp, 3Fh
or ecx, [ebp*+var_280]
mov ebp, eax
shr ebp, 18h
and ebp, 3Fh
or ecx, [ebp*+var_880]
mov ebp, edx
shr ebp, 18h
and ebp, 3Fh
or ecx, [ebp*+var_780]
mov ebp, [var_98C]
and eax, 3Fh
or ecx, [eax*+var_580]
and edx, 3Fh
or ecx, [edx*+var_380]
add ebp,
xor ecx, [var_988]
mov [var_98C], ebp
cmp ebp, 20h
jnz loc_4031C4
retn LoopXor endp ExitXor proc near ror ecx,
ror ebx,
mov edx, ecx
shr edx,
mov eax, ebx
xor edx, eax
and edx, 55555555h
xor eax, edx
add edx, edx
xor ecx, edx
mov edx, eax
shr edx,
xor edx, ecx
and edx, 0FF00FFh
xor ecx, edx
shl edx,
xor eax, edx
mov edx, eax
shr edx,
xor edx, ecx
and edx, 33333333h
xor ecx, edx
add edx, edx
add edx, edx
xor eax, edx
mov edx, ecx
shr edx, 10h
xor edx, eax
and edx, 0FFFFh
xor eax, edx
shl edx, 10h
xor ecx, edx
mov ebx, ecx
shr ebx,
xor ebx, eax
and ebx, 0F0F0F0Fh
mov edx, ebx
shl edx,
xor edx, ecx
mov ebp, edx
mov ecx, edx
shr ecx, 10h
and ebp, 0FF0000h
or ebp, ecx
mov ecx, edx
xor eax, ebx
and edx, 0FF00h
shl ecx, 10h
or ecx, edx
mov edx, eax
and edx, 0FF0000h
mov ebx, eax
shr ebx, 10h
or edx, ebx
mov ebx, eax
shl ebx, 10h
and eax, 0FF00h
shl ecx,
or ebx, eax
shr ebp,
or ebp, ecx
shr edx,
shl ebx,
or edx, ebx
retn ExitXor endp Ecode proc ;arg_0:dword,len:dword
push ebp
mov ebp,esp
pushad xor esi,esi
mov ebx,[ebp+0ch]
shr ebx, ; ebx = 数据长度
add esp, 10h
xor edi, edi
mov [var_984], ebx
cmp ebx, esi
jbe loc_40332F
lea esp, [esp+] mov esi, [ebp+] loc_403100: ; CODE XREF: sub_401E00+1529j
push esi
call InitXor ; 操作 eax,edx 返回 ebx,eax
call LoopXor ; 操作 ebx,eax 返回 ebx,ecx
call ExitXor ; 操作 ebx,ecx 返回 ebp,edx
mov ecx, esi
mov [ecx+edi*], ebp
mov [ecx+edi*+], edx
add edi,
cmp edi, [var_984]
jb loc_403100
loc_40332F:
popad
sub esp,10h
pop ebp
ret Ecode endp
;第三步 根据加密函数写出解密函数
.
.model flat,stdcall option casemap:none include msvcrt.inc ;
include windows.inc ;
include kernel32.inc ;
;
includelib msvcrt.lib
includelib KERNEL32.LIB .data format db "%s",
string db "", ecode db 041h, 00eh, 097h, 0a3h, 02bh, 05ah, 0b7h, 06dh, 039h, 030h, 036h src db dup()
buf db dup() var_98C dd 000000000h
var_988 dd 000000000h
var_984 dd 000000002h var_980 dd 000802001h, 000002081h, 000002081h, 000000080h, 000802080h, 000800081h, 000800001h, 000002001h, 000000000h, 000802000h, 000802000h, 000802081h, 000000081h, 000000000h, 000800080h, 000800001h
dd 000000001h, 000002000h, 000800000h, 000802001h, 000000080h, 000800000h, 000002001h, 000002080h, 000800081h, 000000001h, 000002080h, 000800080h, 000002000h, 000802080h, 000802081h, 000000081h
dd 000800080h, 000800001h, 000802000h, 000802081h, 000000081h, 000000000h, 000000000h, 000802000h, 000002080h, 000800080h, 000800081h, 000000001h, 000802001h, 000002081h, 000002081h, 000000080h
dd 000802081h, 000000081h, 000000001h, 000002000h, 000800001h, 000002001h, 000802080h, 000800081h, 000002001h, 000002080h, 000800000h, 000802001h, 000000080h, 000800000h, 000002000h, 000802080h
var_880 dd 080108020h, 080008000h, 000008000h, 000108020h, 000100000h, 000000020h, 080100020h, 080008020h, 080000020h, 080108020h, 080108000h, 080000000h, 080008000h, 000100000h, 000000020h, 080100020h
dd 000108000h, 000100020h, 080008020h, 000000000h, 080000000h, 000008000h, 000108020h, 080100000h, 000100020h, 080000020h, 000000000h, 000108000h, 000008020h, 080108000h, 080100000h, 000008020h
dd 000000000h, 000108020h, 080100020h, 000100000h, 080008020h, 080100000h, 080108000h, 000008000h, 080100000h, 080008000h, 000000020h, 080108020h, 000108020h, 000000020h, 000008000h, 080000000h
dd 000008020h, 080108000h, 000100000h, 080000020h, 000100020h, 080008020h, 080000020h, 000100020h, 000108000h, 000000000h, 080008000h, 000008020h, 080000000h, 080100020h, 080108020h, 000108000h
var_780 dd 001010400h, 000000000h, 000010000h, 001010404h, 001010004h, 000010404h, 000000004h, 000010000h, 000000400h, 001010400h, 001010404h, 000000400h, 001000404h, 001010004h, 001000000h, 000000004h
dd 000000404h, 001000400h, 001000400h, 000010400h, 000010400h, 001010000h, 001010000h, 001000404h, 000010004h, 001000004h, 001000004h, 000010004h, 000000000h, 000000404h, 000010404h, 001000000h
dd 000010000h, 001010404h, 000000004h, 001010000h, 001010400h, 001000000h, 001000000h, 000000400h, 001010004h, 000010000h, 000010400h, 001000004h, 000000400h, 000000004h, 001000404h, 000010404h
dd 001010404h, 000010004h, 001010000h, 001000404h, 001000004h, 000000404h, 000010404h, 001010400h, 000000404h, 001000400h, 001000400h, 000000000h, 000010004h, 000010400h, 000000000h, 001010004h
var_680 dd 020000010h, 020400000h, 000004000h, 020404010h, 020400000h, 000000010h, 020404010h, 000400000h, 020004000h, 000404010h, 000400000h, 020000010h, 000400010h, 020004000h, 020000000h, 000004010h
dd 000000000h, 000400010h, 020004010h, 000004000h, 000404000h, 020004010h, 000000010h, 020400010h, 020400010h, 000000000h, 000404010h, 020404000h, 000004010h, 000404000h, 020404000h, 020000000h
dd 020004000h, 000000010h, 020400010h, 000404000h, 020404010h, 000400000h, 000004010h, 020000010h, 000400000h, 020004000h, 020000000h, 000004010h, 020000010h, 020404010h, 000404000h, 020400000h
dd 000404010h, 020404000h, 000000000h, 020400010h, 000000010h, 000004000h, 020400000h, 000404010h, 000004000h, 000400010h, 020004010h, 000000000h, 020404000h, 020000000h, 000400010h, 020004010h
var_580 dd 010001040h, 000001000h, 000040000h, 010041040h, 010000000h, 010001040h, 000000040h, 010000000h, 000040040h, 010040000h, 010041040h, 000041000h, 010041000h, 000041040h, 000001000h, 000000040h
dd 010040000h, 010000040h, 010001000h, 000001040h, 000041000h, 000040040h, 010040040h, 010041000h, 000001040h, 000000000h, 000000000h, 010040040h, 010000040h, 010001000h, 000041040h, 000040000h
dd 000041040h, 000040000h, 010041000h, 000001000h, 000000040h, 010040040h, 000001000h, 000041040h, 010001000h, 000000040h, 010000040h, 010040000h, 010040040h, 010000000h, 000040000h, 010001040h
dd 000000000h, 010041040h, 000040040h, 010000040h, 010040000h, 010001000h, 010001040h, 000000000h, 010041040h, 000041000h, 000041000h, 000001040h, 000001040h, 000040040h, 010000000h, 010041000h
var_480 dd 000000100h, 002080100h, 002080000h, 042000100h, 000080000h, 000000100h, 040000000h, 002080000h, 040080100h, 000080000h, 002000100h, 040080100h, 042000100h, 042080000h, 000080100h, 040000000h
dd 002000000h, 040080000h, 040080000h, 000000000h, 040000100h, 042080100h, 042080100h, 002000100h, 042080000h, 040000100h, 000000000h, 042000000h, 002080100h, 002000000h, 042000000h, 000080100h
dd 000080000h, 042000100h, 000000100h, 002000000h, 040000000h, 002080000h, 042000100h, 040080100h, 002000100h, 040000000h, 042080000h, 002080100h, 040080100h, 000000100h, 002000000h, 042080000h
dd 042080100h, 000080100h, 042000000h, 042080100h, 002080000h, 000000000h, 040080000h, 042000000h, 000080100h, 002000100h, 040000100h, 000080000h, 000000000h, 040080000h, 002080100h, 040000100h
var_380 dd 000200000h, 004200002h, 004000802h, 000000000h, 000000800h, 004000802h, 000200802h, 004200800h, 004200802h, 000200000h, 000000000h, 004000002h, 000000002h, 004000000h, 004200002h, 000000802h
dd 004000800h, 000200802h, 000200002h, 004000800h, 004000002h, 004200000h, 004200800h, 000200002h, 004200000h, 000000800h, 000000802h, 004200802h, 000200800h, 000000002h, 004000000h, 000200800h
dd 004000000h, 000200800h, 000200000h, 004000802h, 004000802h, 004200002h, 004200002h, 000000002h, 000200002h, 004000000h, 004000800h, 000200000h, 004200800h, 000000802h, 000200802h, 004200800h
dd 000000802h, 004000002h, 004200802h, 004200000h, 000200800h, 000000000h, 000000002h, 004200802h, 000000000h, 000200802h, 004200000h, 000000800h, 004000002h, 004000800h, 000000800h, 000200002h
var_280 dd 000000208h, 008020200h, 000000000h, 008020008h, 008000200h, 000000000h, 000020208h, 008000200h, 000020008h, 008000008h, 008000008h, 000020000h, 008020208h, 000020008h, 008020000h, 000000208h
dd 008000000h, 000000008h, 008020200h, 000000200h, 000020200h, 008020000h, 008020008h, 000020208h, 008000208h, 000020200h, 000020000h, 008000208h, 000000008h, 008020208h, 000000200h, 008000000h
dd 008020200h, 008000000h, 000020008h, 000000208h, 000020000h, 008020200h, 008000200h, 000000000h, 000000200h, 000020008h, 008020208h, 008000200h, 008000008h, 000000200h, 000000000h, 008020008h
dd 008000208h, 000020000h, 008000000h, 008020208h, 000000008h, 000020208h, 000020200h, 008000008h, 008020000h, 008000208h, 000000208h, 008020000h, 000020208h, 000000008h, 008020008h, 000020200h
Dst dd 002002608h
var_17C dd 010200e3ah, 000242327h, 004000431h, 000042834h, 020002b26h, 000241613h, 00008003fh, 001203811h, 020001f00h, 00020340eh, 020093015h, 005000b0ch, 02008030eh, 001000525h, 0000d3c13h
dd 020103f04h, 008001a21h, 000100e3ah, 003000816h, 020181107h, 001002b30h, 020002432h, 00300330bh, 020081c0dh, 00220052dh, 002082910h, 002002413h, 000081a25h, 00030321ch, 000001d29h, 00402090ah
dd 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h
dd 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h, 000000000h debuf dd 000001d29h
debuf2 dd 00402090ah
dd 000081a25h, 00030321ch
dd 002082910h, 002002413h
dd 020081c0dh, 00220052dh
dd 020002432h, 00300330bh
dd 020181107h, 001002b30h
dd 000100e3ah, 003000816h
dd 020103f04h, 008001a21h
dd 001000525h, 0000d3c13h
dd 005000b0ch, 02008030eh
dd 00020340eh, 020093015h
dd 001203811h, 020001f00h
dd 000241613h, 00008003fh
dd 000042834h, 020002b26h
dd 000242327h, 004000431h
dd 002002608h, 010200e3ah .code InitXor proc near
push ebp
mov ebp,esp
mov edx, [ebp+]
mov eax, [edx+edi*]
mov edx, [edx+edi*+]
mov ecx, eax
mov ebx, eax
shr ebx, 10h
and ecx, 0FF0000h
or ecx, ebx
mov ebx, eax
and eax, 0FF00h
shl ebx, 10h
or ebx, eax
mov eax, edx
shl ebx,
shr ecx,
or ecx, ebx
mov ebx, edx
and eax, 0FF0000h
shr ebx, 10h
or eax, ebx
mov ebx, edx
and edx, 0FF00h
shl ebx, 10h
or ebx, edx
shr eax,
shl ebx,
or eax, ebx
mov edx, ecx
shr edx,
xor edx, eax
and edx, 0F0F0F0Fh
xor eax, edx
shl edx,
xor ecx, edx
mov edx, ecx
shr edx, 10h
xor edx, eax
and edx, 0FFFFh
xor eax, edx
shl edx, 10h
xor ecx, edx
mov edx, eax
shr edx,
xor edx, ecx
and edx, 33333333h
xor ecx, edx
add edx, edx
add edx, edx
xor eax, edx
mov edx, eax
shr edx,
xor edx, ecx
and edx, 0FF00FFh
xor ecx, edx
shl edx,
xor eax, edx
mov edx, ecx
shr edx,
xor edx, eax
and edx, 55555555h
lea ebx, [edx+edx]
xor ebx, ecx
xor eax, edx
rol ebx,
rol eax,
pop ebp
retn InitXor endp LoopXor proc near ; 操作 ebx,eax,返回 ebx,ecx xor ebp, ebp
mov [var_98C], ebp
mov ecx, eax loc_4031C4: ; CODE XREF: sub_401E00+145Cj
mov eax, [ebp*+Dst]
xor eax, ecx
mov edx, ecx
ror edx,
xor edx, [ebp*+var_17C]
mov [var_988], ebx
mov ebx, ecx
mov ecx, eax
shr ecx,
and ecx, 3Fh
mov ecx, [ecx*+var_680]
mov ebp, edx
shr ebp,
and ebp, 3Fh
or ecx, [ebp*+var_480]
mov ebp, eax
shr ebp, 10h
and ebp, 3Fh
or ecx, [ebp*+var_980]
mov ebp, edx
shr ebp, 10h
and ebp, 3Fh
or ecx, [ebp*+var_280]
mov ebp, eax
shr ebp, 18h
and ebp, 3Fh
or ecx, [ebp*+var_880]
mov ebp, edx
shr ebp, 18h
and ebp, 3Fh
or ecx, [ebp*+var_780]
mov ebp, [var_98C]
and eax, 3Fh
or ecx, [eax*+var_580]
and edx, 3Fh
or ecx, [edx*+var_380]
add ebp,
xor ecx, [var_988]
mov [var_98C], ebp
cmp ebp, 20h
jnz loc_4031C4
retn LoopXor endp ExitXor proc near ror ecx,
ror ebx,
mov edx, ecx
shr edx,
mov eax, ebx
xor edx, eax
and edx, 55555555h
xor eax, edx
add edx, edx
xor ecx, edx
mov edx, eax
shr edx,
xor edx, ecx
and edx, 0FF00FFh
xor ecx, edx
shl edx,
xor eax, edx
mov edx, eax
shr edx,
xor edx, ecx
and edx, 33333333h
xor ecx, edx
add edx, edx
add edx, edx
xor eax, edx
mov edx, ecx
shr edx, 10h
xor edx, eax
and edx, 0FFFFh
xor eax, edx
shl edx, 10h
xor ecx, edx
mov ebx, ecx
shr ebx,
xor ebx, eax
and ebx, 0F0F0F0Fh
mov edx, ebx
shl edx,
xor edx, ecx
mov ebp, edx
mov ecx, edx
shr ecx, 10h
and ebp, 0FF0000h
or ebp, ecx
mov ecx, edx
xor eax, ebx
and edx, 0FF00h
shl ecx, 10h
or ecx, edx
mov edx, eax
and edx, 0FF0000h
mov ebx, eax
shr ebx, 10h
or edx, ebx
mov ebx, eax
shl ebx, 10h
and eax, 0FF00h
shl ecx,
or ebx, eax
shr ebp,
or ebp, ecx
shr edx,
shl ebx,
or edx, ebx
retn ExitXor endp LoopXor2 proc near ; 操作 ebx,eax,返回 ebx,ecx xor ebp, ebp
mov [var_98C], ebp
mov ecx, eax LOOP1: ; CODE XREF: sub_401E00+145Cj
mov eax, [ebp*+debuf]
xor eax, ecx
mov edx, ecx
ror edx,
xor edx, [ebp*+debuf2]
mov [var_988], ebx
mov ebx, ecx
mov ecx, eax
shr ecx,
and ecx, 3Fh
mov ecx, [ecx*+var_680]
mov ebp, edx
shr ebp,
and ebp, 3Fh
or ecx, [ebp*+var_480]
mov ebp, eax
shr ebp, 10h
and ebp, 3Fh
or ecx, [ebp*+var_980]
mov ebp, edx
shr ebp, 10h
and ebp, 3Fh
or ecx, [ebp*+var_280]
mov ebp, eax
shr ebp, 18h
and ebp, 3Fh
or ecx, [ebp*+var_880]
mov ebp, edx
shr ebp, 18h
and ebp, 3Fh
or ecx, [ebp*+var_780]
and eax, 3Fh
or ecx, [eax*+var_580]
and edx, 3Fh
or ecx, [edx*+var_380]
xor ecx, [var_988]
mov ebp, [var_98C]
add ebp,
mov [var_98C], ebp
cmp ebp, 20h
jne LOOP1
retn LoopXor2 endp Ecode proc ;arg_0:dword,len:dword
push ebp
mov ebp,esp
pushad xor esi,esi
mov ebx,[ebp+0ch]
shr ebx, ; ebx = 数据长度
add esp, 10h
xor edi, edi
mov [var_984], ebx
cmp ebx, esi
jbe loc_40332F
lea esp, [esp+] mov esi, [ebp+] loc_403100: ; CODE XREF: sub_401E00+1529j
push esi
call InitXor ; 操作 eax,edx 返回 ebx,eax
call LoopXor ; 操作 ebx,eax 返回 ebx,ecx
call ExitXor ; 操作 ebx,ecx 返回 ebp,edx
mov ecx, esi
mov [ecx+edi*], ebp
mov [ecx+edi*+], edx
add edi,
cmp edi, [var_984]
jb loc_403100
loc_40332F:
popad
sub esp,10h
pop ebp
ret Ecode endp decode proc push ebp
mov ebp,esp
pushad xor esi,esi
mov ebx,[ebp+0ch]
shr ebx, ; ebx = 数据长度
add esp, 10h
xor edi, edi
mov [var_984], ebx
cmp ebx, esi
jbe loc_40332F
lea esp, [esp+] mov esi, [ebp+] loc_403100: ; CODE XREF: sub_401E00+1529j
push esi
call InitXor ; 操作 eax,edx 返回 ebx,eax
call LoopXor2 ; 操作 ebx,eax 返回 ebx,ecx
call ExitXor ; 操作 ebx,ecx 返回 ebp,edx
mov ecx, esi
mov [ecx+edi*], ebp
mov [ecx+edi*+], edx
add edi,
cmp edi, [var_984]
jb loc_403100
loc_40332F:
popad
sub esp,10h
pop ebp
ret decode endp DecodeBuf proc arg0:dword,arg1:dword push arg1
push arg0
call decode
ret DecodeBuf endp end
;main: ;for test
;
; push 0ah
; push offset string
; call Ecode
;
; push 0ah
; push offset string
; call decode
;
;
; ret
;
;
;end main

将第三部代码放入RADASM编译后,导入VS项目,在test.cpp中声明一下,调用解密即可:

#define _WINSOCK_DEPRECATED_NO_WARNINGS

#include <stdio.h>
#include <WinSock2.h>
#include <windows.h> #pragma comment (lib, "Ws2_32.lib") extern "C" void __stdcall DecodeBuf(DWORD, DWORD); int main()
{
WSADATA wd = { };
WSAStartup(MAKEWORD(, ), &wd); SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); SOCKADDR_IN sai = { };
sai.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
sai.sin_port = htons();
sai.sin_family = AF_INET;
connect(s, (sockaddr*)&sai, sizeof(SOCKADDR_IN)); CHAR szToSend[] = { };
printf("请输入要发送的信息\n"); scanf_s("%s", szToSend, ); send(s, szToSend, , NULL); CHAR RecvBuf[] = { };
int nlen = recv(s, RecvBuf, , NULL); printf("接收到的加密了之后的信息:\n");
for (int i = ; i < nlen; ++i)
{
printf("0x%x ", (BYTE)RecvBuf[i]);
}
printf("\n"); DecodeBuf((DWORD)RecvBuf, nlen);
printf("解密之后的信息:%s\n",RecvBuf); system("pause"); send(s, "quit", , NULL);
closesocket(s);
WSACleanup(); return ;
}

基于DES加密的服务端分析的更多相关文章

  1. Vue 爬坑之路(十一)—— 基于 Nuxt.js 实现服务端渲染(SSR)

    直接使用 Vue 构建前端单页面应用,页面源码时只有简单的几行 html,这并不利于网站的 SEO,这时候就需要服务端渲染 2016 年 10 月 25 日,zeit.co 背后的团队对外发布了一个 ...

  2. 基于netty的socket服务端触发了channelInactive方法,但实际连接没有断开的问题

    背景: 一个中小型H5游戏,后端使用基于 netty 的socket服务 服务端 分为 分发服务器 & 业务服务器,业务服务器可负载 用户客户端与分发服务器连接 分发服务器再作为客户端与每台业 ...

  3. Python实现基于DES加密源码的文本加密器

    这是自行制作的一个DES文本加密工具 最终效果图: 本加密器支持UTF-8字符的加解密(包含中文),由于其中的编码方式与常用编码方式不同,加密结果与网上工具不同,但是能实现正常加解密. 最终目标: 目 ...

  4. [PHP]AES加密----PHP服务端和Android客户端

    本文采取128位AES-CBC模式加密和解密 1.首先对服务端安装mcrypt: sudo apt-get install php5-mcrypt php5-dev sudo php5enmod mc ...

  5. 基于Angular4+ server render(服务端渲染)开发教程

    目标: 1.更好的 SEO,方便搜索爬虫抓取页面内容 2.更快的内容到达时间(time-to-content) 影响: 1.用户:比原来更快的看到渲染的页面,提升用户体验 2.开发人员:某些代码可能需 ...

  6. 基于vue-cli项目添加服务端渲染

    两个示例的git地址: 1. 我的环境 2. 方式一:使用prerender-spa-plugin插件获得SSR的效果. 2.1 说明 2.2 初始化 1 vue init webpack vue-p ...

  7. 基于java NIO 的服务端与客户端代码

    在对java NIO  selector 与 Buffer Channel  有一定的了解之后,我们进行编写java nio 实现的 客户端与服务端例子: 服务端: public class NIOC ...

  8. Winfrom 基于TCP的Socket服务端 多线程(进阶版)

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  9. C++封装的基于WinSock2的TCP服务端、客户端

    无聊研究Winsock套接字编程,用原生的C语言接口写出来的代码看着难受,于是自己简单用C++封装一下,把思路过程理清,方便自己后续翻看和新手学习. 只写好了TCP通信服务端,有空把客户端流程也封装一 ...

随机推荐

  1. 软件包管理(rpm,yum)

    软件包管理相关软件: 软件包管理器的核心功能: .制作软件包 .安装,卸载,升级,查询,效验 Redhat ,SUSE : RPM Debian :dpt 依赖关系; 前端工具;yum ,apt-ge ...

  2. golang从文件按行读取并输出

    package main import ( "fmt" "os" "bufio" "io" "time&quo ...

  3. ORA-08176 错误的一个案例

    在演示事务的read only mode 的时候,因为一个错误有了这个意外的收获.场景是这样的: 在session 1 中执行了如下的语句. SQL> set transaction read ...

  4. springMVC注解总结

    由于BookController类加了value="/book"的@RequestMapping的注解,所以相关路径都要加上"/book",即请求的url分别为 ...

  5. word模板导出的几种方式:第一种:占位符替换模板导出(只适用于word中含有表格形式的)

    1.占位符替换模板导出(只适用于word中含有表格形式的): /// <summary> /// 使用替换模板进行到处word文件 /// </summary> public ...

  6. Bigger-Mai 养成计划,Python基础巩固二

    模块初识1.标准库2.第三方库import sys sys.path #自己的本文件名不可为sys.py#输出模块存储的环境变量sys.argv #打印脚本的相对路径sys.argv[2] #取第二个 ...

  7. 利用 Charles Proxy 下载旧版本 iOS App

    一.软件准备 1.旧版本 iTunes1.IPSW Downloads:https://ipsw.me/2.百度网盘链接: https://pan.baidu.com/s/1PO9Z12o-rqZ_J ...

  8. Vue-admin工作整理(七):路由的切换动效

    思路就是通过 transition-group 这个组件来对多组件进行控制,效果是通过样式来写,transition-group要有指定的key值,样式中通过name来命名类的名字 <templ ...

  9. 实验九 FBG 团队项目需求改进与系统设计

    任务一 A.<项目需求规格说明书>分析 根据老师的指导以及本周所学的OOA,分析改进上周编写的<项目需求规格说明书>,发现需求项目书UML图例描述不够完善,仅仅是用例图没办法更 ...

  10. vitual dom实现(转)

    1. 通过JavaScript来构建虚拟的DOM树结构,并将其呈现到页面中: 2. 当数据改变,引起DOM树结构发生改变,从而生成一颗新的虚拟DOM树,将其与之前的DOM对比,将变化部分应用到真实的D ...