//
addr[]为
23
1E 封包
// output[]为输出
int r_ecx , i;
DWORD r_edx;
BYTE r_cl;
r_edx = 0x0B ;
for (i = 0 ; i < BYTE_PTR(addr[ 0x0A ]); i ++ )
{
r_ecx = i;
r_ecx &= 0x80000001 ;
r_cl = BYTE_PTR(addr_ptr[r_edx]);
if (r_ecx < 0 )
{
r_ecx -- ;
r_ecx |= 0xFFFFFFFE ;
r_ecx ++ ;
}
if (r_ecx == 0 )
{
r_cl &= 0x0F ;
}
else {
r_cl >>= 4 ;
r_edx ++ ;
}
output = r_cl;
}
测试数据:
接受的23 1E封包:
0012F854 23 1E C2 D1 00 00 C9 00 E5 00 05 56 55 F5 12 00
以上数据经过上面函数计算,其 56 55 F5 12 00 解密得到: 06 05 05 05 05 ,该序列就是走路过程的状
态序列,长度代表步数
路途每步的方向与数值对比:
左: 04
右: 00
下: 06
上: 02
左上: 03
左下: 05
右上: 01
右下: 07
处理23 1E :
0044ABA7 |> 0FB746 02 movzx eax , word ptr ds : [esi + 2 ] ; Case 1E of switch
00449D59
0044ABAB |. 50 push eax
0044ABAC |. E8 0FE7FEFF call TJ2Clien . 004392C0
0044ABB1 |. 8BF8 mov edi , eax
0044ABB3 |. 83C4 04 add esp , 4
0044ABB6 |. 3BFB cmp edi , ebx
具体计算:
004461B0 |> / 8BC8 / mov ecx , eax
004461B2 |. | 81E1 01000080 | and ecx , 80000001
004461B8 |. | 79 05 | jns short TJ2Clien . 004461BF
004461BA |. | 49 | dec ecx
004461BB |. | 83C9 FE | or ecx , FFFFFFFE
004461BE |. | 41 | inc ecx
004461BF |> | 8A0A | mov cl , byte ptr ds : [edx]
004461C1 |. | 75 05 | jnz short TJ2Clien . 004461C8
004461C3 |. | 80E1 0F | and cl , 0F
004461C6 |. | EB 04 | jmp short TJ2Clien . 004461CC
004461C8 |> | C0E9 04 | shr cl , 4
004461CB |. | 42 | inc edx
004461CC |> | 880C30 | mov byte ptr ds : [eax + esi] , cl
004461CF |. | 0FB64F 0A | movzx ecx , byte ptr ds : [edi + A]
004461D3 |. | 40 | inc eax
004461D4 |. | 3BC1 | cmp eax , ecx
004461D6 |.^ 7C D8 jl short TJ2Clien . 004461B0
030A19CB CC int3
030A19CC CB retf
030A19CD 38EF cmp bh , ch
030A28C1 CC int3
030A28C2 C010 03 rcl byte ptr ds : [eax] , 3
030A28C5 B1 54 mov cl , 54
030A28C7 ^ E9 D1FDFFFF jmp 030A269D
作者:眼镜
// output[]为输出
int r_ecx , i;
DWORD r_edx;
BYTE r_cl;
r_edx = 0x0B ;
for (i = 0 ; i < BYTE_PTR(addr[ 0x0A ]); i ++ )
{
r_ecx = i;
r_ecx &= 0x80000001 ;
r_cl = BYTE_PTR(addr_ptr[r_edx]);
if (r_ecx < 0 )
{
r_ecx -- ;
r_ecx |= 0xFFFFFFFE ;
r_ecx ++ ;
}
if (r_ecx == 0 )
{
r_cl &= 0x0F ;
}
else {
r_cl >>= 4 ;
r_edx ++ ;
}
output = r_cl;
}
测试数据:
接受的23 1E封包:
0012F854 23 1E C2 D1 00 00 C9 00 E5 00 05 56 55 F5 12 00
以上数据经过上面函数计算,其 56 55 F5 12 00 解密得到: 06 05 05 05 05 ,该序列就是走路过程的状
态序列,长度代表步数
路途每步的方向与数值对比:
左: 04
右: 00
下: 06
上: 02
左上: 03
左下: 05
右上: 01
右下: 07
处理23 1E :
0044ABA7 |> 0FB746 02 movzx eax , word ptr ds : [esi + 2 ] ; Case 1E of switch
00449D59
0044ABAB |. 50 push eax
0044ABAC |. E8 0FE7FEFF call TJ2Clien . 004392C0
0044ABB1 |. 8BF8 mov edi , eax
0044ABB3 |. 83C4 04 add esp , 4
0044ABB6 |. 3BFB cmp edi , ebx
具体计算:
004461B0 |> / 8BC8 / mov ecx , eax
004461B2 |. | 81E1 01000080 | and ecx , 80000001
004461B8 |. | 79 05 | jns short TJ2Clien . 004461BF
004461BA |. | 49 | dec ecx
004461BB |. | 83C9 FE | or ecx , FFFFFFFE
004461BE |. | 41 | inc ecx
004461BF |> | 8A0A | mov cl , byte ptr ds : [edx]
004461C1 |. | 75 05 | jnz short TJ2Clien . 004461C8
004461C3 |. | 80E1 0F | and cl , 0F
004461C6 |. | EB 04 | jmp short TJ2Clien . 004461CC
004461C8 |> | C0E9 04 | shr cl , 4
004461CB |. | 42 | inc edx
004461CC |> | 880C30 | mov byte ptr ds : [eax + esi] , cl
004461CF |. | 0FB64F 0A | movzx ecx , byte ptr ds : [edi + A]
004461D3 |. | 40 | inc eax
004461D4 |. | 3BC1 | cmp eax , ecx
004461D6 |.^ 7C D8 jl short TJ2Clien . 004461B0
030A19CB CC int3
030A19CC CB retf
030A19CD 38EF cmp bh , ch
030A28C1 CC int3
030A28C2 C010 03 rcl byte ptr ds : [eax] , 3
030A28C5 B1 54 mov cl , 54
030A28C7 ^ E9 D1FDFFFF jmp 030A269D
作者:眼镜