|
V2解析器源码:
如果有人说V2没解析请把这个帖子发给他
- //提取 By ExtremeBlackLiu
- //代码段(伪代码,C++):
- //---------------------------------------------------------------
- int *__userpurge OneTap::Utils::ResolvePlayersVector@<eax>(int a1@<edi>, int LocalPlayer_3@<esi>, double weaponType@<st0>, int *a3)
- {
- int *PlayerInstance; // ecx
- int v5; // ST2C_4
- int *LocalPlayer; // esi
- void (__userpurge *v7)(int, int, double@<st0>); // eax
- int (__stdcall *v8)(int); // eax
- int v9; // edx
- int v10; // eax
- int m_vecOrigin; // esi
- int m_vecViewOffset; // eax
- float v13; // xmm2_4
- float v14; // xmm0_4
- float v15; // ST60_4
- void (__stdcall *v16)(float *); // eax
- float v17; // ST44_4
- float v18; // ST4C_4
- float v19; // ST44_4
- int *LocalPlayer_1; // esi
- float v21; // xmm3_4
- void (*PlayerInstance_1)(void); // eax
- int (__stdcall *LocalPlayer_2)(int); // eax
- int v24; // edx
- int v25; // eax
- float *v26; // ecx
- int m_bGunGameImmunity; // eax
- _BYTE *m_pPlayer; // esi MAPDST
- float v29; // xmm1_4
- int *iteration_player; // edx
- int player_vec_end_1; // eax
- int player; // edi
- int v33; // eax
- int v34; // eax
- char *v35; // esi
- signed int v36; // edi
- int v37; // edi
- signed int v38; // esi
- int v39; // ecx
- char *v40; // esi
- float v41; // xmm0_4
- int *v42; // ecx
- float v43; // ST58_4
- int v44; // ST24_4
- int v45; // ST28_4
- int v46; // ST2C_4
- int v47; // ST18_4
- int v48; // ST1C_4
- int v49; // ST20_4
- int player_vec_start; // [esp+3Ch] [ebp-744h]
- int player_vec_end; // [esp+40h] [ebp-740h]
- int v53; // [esp+44h] [ebp-73Ch]
- int v54; // [esp+44h] [ebp-73Ch]
- char *v55; // [esp+48h] [ebp-738h]
- int v56; // [esp+48h] [ebp-738h]
- float v57; // [esp+4Ch] [ebp-734h]
- float v58; // [esp+60h] [ebp-720h]
- float v59; // [esp+64h] [ebp-71Ch]
- int v60; // [esp+68h] [ebp-718h]
- int v61; // [esp+6Ch] [ebp-714h]
- float v62; // [esp+70h] [ebp-710h]
- float v63; // [esp+74h] [ebp-70Ch]
- float v64; // [esp+78h] [ebp-708h]
- float v65; // [esp+7Ch] [ebp-704h]
- float v66; // [esp+80h] [ebp-700h]
- float v67; // [esp+84h] [ebp-6FCh]
- float v68; // [esp+88h] [ebp-6F8h]
- float v69; // [esp+8Ch] [ebp-6F4h]
- float v70; // [esp+90h] [ebp-6F0h]
- int (__stdcall **v71)(int, int); // [esp+94h] [ebp-6ECh]
- int v72; // [esp+98h] [ebp-6E8h]
- int v73; // [esp+9Ch] [ebp-6E4h]
- int v74; // [esp+A0h] [ebp-6E0h]
- int v75; // [esp+A4h] [ebp-6DCh]
- int v76; // [esp+A8h] [ebp-6D8h]
- int v77; // [esp+ACh] [ebp-6D4h]
- int v78; // [esp+B0h] [ebp-6D0h]
- int v79; // [esp+B4h] [ebp-6CCh]
- int v80; // [esp+B8h] [ebp-6C8h]
- int v81; // [esp+BCh] [ebp-6C4h]
- int v82; // [esp+C0h] [ebp-6C0h]
- char v84; // [esp+F8h] [ebp-688h]
- char v85; // [esp+148h] [ebp-638h]
- char v86; // [esp+164h] [ebp-61Ch]
- PlayerInstance = OneTap::Globals::EngineClient;
- v5 = LocalPlayer_3;
- LocalPlayer = Onetap::Globals::ILocalPlayer;
- *a3 = 0;
- a3[2] = 0;
- a3[1] = 0;
- v7 = C_SDK::Utils::CallVirtualFunction(PlayerInstance, 12);
- v7(a1, v5, weaponType);
- v8 = C_SDK::Valve::CallEngineState(LocalPlayer);
- v10 = v8(v9);
- m_vecOrigin = C_SDK::NetVars::m_vecOrigin;
- v53 = v10;
- if ( !C_SDK::NetVars::m_vecOrigin )
- {
- m_vecOrigin = C_SDK::Security::GetVariableFromClassWithFNV(0x1EEE87CC, 0x559D81AF);
- C_SDK::NetVars::m_vecOrigin = m_vecOrigin;
- }
- m_vecViewOffset = C_SDK::NetVars::m_vecViewOffset;
- if ( !C_SDK::NetVars::m_vecViewOffset )
- {
- m_vecViewOffset = C_SDK::Security::GetVariableFromClassWithFNV(0x4E9F1122, 0x4CDD3467);
- C_SDK::NetVars::m_vecViewOffset = m_vecViewOffset;
- }
- v13 = *(v53 + m_vecOrigin + 8) + *(v53 + m_vecViewOffset + 8);
- v14 = *(v53 + m_vecViewOffset) + *(v53 + m_vecOrigin);
- v69 = *(v53 + m_vecOrigin + 4) + *(v53 + m_vecViewOffset + 4);
- v15 = v69;
- v68 = v14;
- v70 = v13;
- v60 = 0;
- v59 = 0.0;
- v58 = 0.0;
- v16 = sub_43DD5700(OneTap::Globals::EngineClient);
- v16(&v58);
- v17 = *&dword_44732F24 + v58;
- v18 = (*&dword_44732F28 + v59) * *&dword_43F408B0;
- sub_43F1CDAB();
- sub_43F1CD99();
- v19 = v17 * *&dword_43F408B0;
- sub_43F1CDAB();
- sub_43F1CD99();
- LocalPlayer_1 = Onetap::Globals::ILocalPlayer;
- v21 = COERCE_FLOAT(LODWORD(v19) ^ xmmword_43F42180) * *&dword_43F40B7C;
- v62 = v14 + ((v19 * v18) * *&dword_43F40B7C);
- v63 = v15 + ((v19 * v18) * *&dword_43F40B7C);
- v64 = v13 + v21;
- v65 = v14 + ((v19 * v18) * *&dword_43F40B7C);
- v66 = v15 + ((v19 * v18) * *&dword_43F40B7C);
- v67 = v13 + v21;
- PlayerInstance_1 = C_SDK::Utils::CallVirtualFunction(OneTap::Globals::EngineClient, 12);
- PlayerInstance_1();
- LocalPlayer_2 = C_SDK::Valve::CallEngineState(LocalPlayer_1);
- v25 = LocalPlayer_2(v24);
- v71 = &off_43F1FB30;
- v72 = v25;
- v73 = 0;
- v76 = 0;
- v75 = 0;
- v74 = 0;
- v79 = 0;
- v78 = 0;
- v77 = 0;
- v82 = 0;
- v81 = 0;
- v80 = 0;
- sub_43DD5870(&v84);
- sub_43DD5770(v26, &v68, &v65);
- (*(*dword_43F45138 + 20))(&v84, 0x4600400B, &v71, &v74);
- if ( !m_pPlayer || !C_SDK::Player::IsPlayer(m_pPlayer) || !C_SDK::Player::IsAlive(m_pPlayer) || m_pPlayer[0xED] )
- goto LABEL_54;
- if ( !C_SDK::Player::IsInTeam(m_pPlayer) )
- {
- m_bGunGameImmunity = C_SDK::NetVars::m_bGunGameImmunity;
- if ( !C_SDK::NetVars::m_bGunGameImmunity )
- {
- m_bGunGameImmunity = C_SDK::Security::GetVariableFromClassWithFNV(0x72E242A1, 0x9C15080D);
- C_SDK::NetVars::m_bGunGameImmunity = m_bGunGameImmunity;
- }
- if ( !m_pPlayer[m_bGunGameImmunity] )
- {
- LABEL_54:
- if ( byte_447176E0[C_SDK::Player::GetWeaponType()] )
- {
- v29 = dword_447176FC[C_SDK::Player::GetWeaponType()] / *&dword_43F40B6C;
- v57 = v29;
- }
- else
- {
- v29 = 0.0;
- }
- if ( byte_44719A0C )
- v57 = v29 + v29;
- iteration_player = OneTap::Globals::PlayersVectorStart;
- player_vec_start = OneTap::Globals::PlayersVectorStart;
- player_vec_end = OneTap::Globals::PlayersVectorEnd;
- if ( OneTap::Globals::PlayersVectorStart != OneTap::Globals::PlayersVectorEnd )
- {
- player_vec_end_1 = OneTap::Globals::PlayersVectorEnd;
- while ( 1 )
- {
- player = *iteration_player;
- v61 = player;
- if ( !player )
- {
- v42 = a3;
- goto NEXT_PLAYER;
- }
- if ( !C_SDK::NetVars::m_lifeState )
- {
- v33 = C_SDK::Security::GetVariableFromClassWithFNV(0x4E9F1122, 0x1C93BCF0);
- iteration_player = player_vec_start;
- C_SDK::NetVars::m_lifeState = v33;
- }
- if ( *(C_SDK::NetVars::m_lifeState + player) )
- goto LABEL_46;
- if ( !C_SDK::NetVars::m_iHealth )
- C_SDK::NetVars::m_iHealth = C_SDK::Security::GetVariableFromClassWithFNV(0x4E9F1122, 0x84CDAD2);
- if ( *(C_SDK::NetVars::m_iHealth + player) <= 0 || *(player + 237) )
- goto RE_UPDATE_VALUE;
- if ( !C_SDK::NetVars::m_bGunGameImmunity )
- C_SDK::NetVars::m_bGunGameImmunity = C_SDK::Security::GetVariableFromClassWithFNV(0x72E242A1, 0x9C15080D);
- if ( *(C_SDK::NetVars::m_bGunGameImmunity + player)
- || C_SDK::Player::IsInTeam(player)
- || !byte_44732F3C[8 * *(player + 0x64)]
- || (weaponType = OneTap::Utils::ProcessedVectors(weaponType, player, &v58, &dword_44732F24, v57),
- (v54 = v34) == 0) )
- {
- RE_UPDATE_VALUE:
- iteration_player = player_vec_start;
- LABEL_46:
- v42 = a3;
- goto MAYBE_END;
- }
- v35 = &v85;
- v36 = 19;
- do
- {
- sub_43E0A260(v35);
- v35 += 84;
- --v36;
- }
- while ( v36 );
- v37 = v61;
- v38 = 0;
- v39 = v54 + 128;
- v55 = &v85;
- do
- {
- sub_43E08F00(v37, v39, v38++);
- v39 = v54 + 128;
- v55 += 84;
- }
- while ( v38 < 19 );
- v56 = 0;
- v40 = &v86;
- while ( *(v40 - 24) )
- {
- if ( sub_43F0A300(&v68, &v65, v40 - 20, v40 - 8, v40 + 8) )
- goto LABEL_41;
- LABEL_44:
- v40 += 84;
- if ( ++v56 >= 19 )
- goto RE_UPDATE_VALUE;
- }
- v43 = *(v40 + 1);
- v44 = *(v40 - 2);
- v45 = *(v40 - 1);
- v46 = *v40;
- v47 = *(v40 - 5);
- v48 = *(v40 - 4);
- v49 = *(v40 - 3);
- sub_43F0A040();
- if ( v43 <= v13 )
- goto LABEL_44;
- LABEL_41:
- LODWORD(v41) = COERCE_UNSIGNED_INT64(sub_43F146F0(&v65, &v85, 2));
- v42 = a3;
- iteration_player = player_vec_start;
- if ( v41 > *(a3 + 1) )
- {
- *a3 = v37;
- *(a3 + 1) = v41;
- a3[2] = *(v54 + 16);
- }
- MAYBE_END:
- player_vec_end_1 = player_vec_end;
- NEXT_PLAYER:
- ++iteration_player;
- player_vec_start = iteration_player;
- if ( iteration_player == player_vec_end_1 )
- return v42;
- }
- }
- }
- }
- return a3;
- }
复制代码
|
|