decompiled agent_release

This commit is contained in:
Benjamin Palko 2026-10-14 16:45:19 -04:00
parent baac905ef2
commit 11a3488883
6439 changed files with 229565 additions and 1 deletions

View file

@ -0,0 +1,417 @@
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
* Ghidra 12.1.2 decompiler output for 0x140003f30 FUN_140003f30
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
undefined8 FUN_140003f30(longlong param_1,ulonglong *param_2,undefined2 *param_3,uint *param_4)
{
byte bVar1;
longlong lVar2;
ulonglong *puVar3;
ulonglong *puVar4;
ushort uVar5;
int iVar6;
int iVar7;
BOOL BVar8;
HANDLE hProcess;
undefined2 *puVar9;
char *pcVar10;
longlong *plVar11;
wchar_t *_Format;
ulonglong *puVar12;
undefined **ppuVar13;
undefined2 *puVar14;
bool bVar15;
undefined1 auStack_2f8 [32];
DWORD local_2d8 [2];
uint local_2d0 [2];
undefined8 local_2c8;
undefined8 local_2c0;
undefined8 local_2b8;
undefined8 local_2b0;
undefined8 local_2a8;
undefined8 local_2a0;
undefined8 local_298;
undefined8 local_290;
undefined8 local_288;
undefined8 local_280;
undefined4 local_278;
undefined8 local_268;
ulonglong *local_260;
ulonglong *local_258;
undefined8 local_250;
ulonglong local_248;
undefined4 local_238 [10];
void *local_210;
ulonglong local_1f8;
undefined2 local_1e8;
undefined6 uStack_1e6;
undefined8 local_1d8;
ulonglong local_1d0;
undefined2 local_1c0;
undefined6 uStack_1be;
undefined8 local_1b0;
ulonglong local_1a8;
undefined4 local_198;
uint local_194;
void *local_160;
undefined8 local_158;
undefined8 local_150;
undefined4 local_138 [10];
undefined2 local_110;
undefined6 uStack_10e;
undefined8 local_100;
ulonglong local_f8;
undefined2 local_e8;
undefined6 uStack_e6;
undefined8 local_d8;
ulonglong local_d0;
undefined2 local_c0;
undefined6 uStack_be;
undefined8 local_b0;
ulonglong local_a8;
int local_74;
void *local_60;
undefined8 local_58;
undefined8 local_50;
ulonglong local_38;
local_268 = 0xfffffffffffffffe;
local_38 = DAT_1401555a0 ^ (ulonglong)auStack_2f8;
iVar6 = _kbhit();
if (iVar6 != 0) {
puVar14 = (undefined2 *)0x0;
do {
iVar6 = _getch();
iVar6 = (int)(char)iVar6;
if (*(char *)(param_1 + 0x48) != '\0') {
iVar7 = toupper(iVar6);
if (iVar7 == 0x55) {
printf("Keyboard UnLocked\n");
*(undefined1 *)(param_1 + 0x48) = 0;
ppuVar13 = &PTR_s_Server_Shutdown__14015aee8;
do {
uVar5 = GetAsyncKeyState(0xa0);
if (((uVar5 & 0x8001) != 0) || (*(char *)(ppuVar13 + 1) == '\0')) {
param_3 = (undefined2 *)*ppuVar13;
param_2 = (ulonglong *)(ulonglong)(uint)(int)*(char *)(ppuVar13 + -1);
printf(" \'%c\'\t: %s\n");
}
ppuVar13 = ppuVar13 + 3;
} while ((longlong)ppuVar13 < 0x14015b050);
}
goto LAB_1400047ca;
}
iVar7 = toupper(iVar6);
switch(iVar7) {
case 0x30:
bVar15 = *(char *)(DAT_140162d68 + 0x171) == '\0';
*(bool *)(DAT_140162d68 + 0x171) = bVar15;
pcVar10 = "Auto Revive On !!!\n";
if (!bVar15) {
pcVar10 = "Auto Revive Off !!!\n";
}
printf(pcVar10);
param_2 = (ulonglong *)0x7;
FUN_140006940(*(longlong *)(param_1 + 0xa0),7,param_3,(longlong)param_4);
break;
case 0x31:
pcVar10 = "All Server On. \n";
printf("All Server On. \n");
FUN_140009890(pcVar10,param_2,param_3,param_4);
param_2 = (ulonglong *)PTR_s_All_Server_On__14015afa8;
printf("%s\n");
break;
case 0x32:
pcVar10 = "Disconnect Server On. \n";
printf("Disconnect Server On. \n");
FUN_140009bd0(pcVar10,param_2,param_3,param_4);
param_2 = (ulonglong *)PTR_s_Disconnect_Server_On__14015afc0;
printf("%s\n");
break;
default:
printf("........... Message : Unknown Control Command.\n");
break;
case 0x35:
local_260 = (ulonglong *)0x0;
local_258 = (ulonglong *)0x0;
local_250 = 0;
FUN_14002ce60(DAT_140162d60,(ulonglong *)&local_260);
puVar4 = local_258;
puVar3 = local_260;
param_2 = (ulonglong *)PTR_s_All_Server_Down__14015afd8;
for (puVar12 = local_260; PTR_s_All_Server_Down__14015afd8 = (undefined *)param_2,
puVar12 != puVar4; puVar12 = puVar12 + 0x1f) {
FUN_140004950(local_238,(undefined4 *)puVar12);
local_2d0[0] = 1;
plVar11 = (longlong *)(*(longlong *)(param_1 + 0xa0) + 0x50);
param_4 = local_2d0;
param_3 = (undefined2 *)&DAT_1401555d0;
(**(code **)(*plVar11 + 0x40))(plVar11,local_198);
if (local_160 != (void *)0x0) {
operator_delete(local_160);
}
local_160 = (void *)0x0;
local_158 = 0;
local_150 = 0;
if (7 < local_1a8) {
operator_delete((void *)CONCAT62(uStack_1be,local_1c0));
}
local_1a8 = 7;
local_1b0 = 0;
local_1c0 = 0;
if (7 < local_1d0) {
operator_delete((void *)CONCAT62(uStack_1e6,local_1e8));
}
local_1d0 = 7;
local_1d8 = 0;
local_1e8 = 0;
if (7 < local_1f8) {
operator_delete(local_210);
}
param_2 = (ulonglong *)PTR_s_All_Server_Down__14015afd8;
}
if (puVar3 != (ulonglong *)0x0) {
FUN_140004b30(puVar3,puVar4);
operator_delete(puVar3);
param_2 = (ulonglong *)PTR_s_All_Server_Down__14015afd8;
}
goto LAB_140004442;
case 0x38:
local_260 = (ulonglong *)0x0;
local_258 = (ulonglong *)0x0;
local_250 = 0;
FUN_14002ce60(DAT_140162d60,(ulonglong *)&local_260);
puVar4 = local_258;
puVar3 = local_260;
for (puVar12 = local_260; puVar12 != puVar4; puVar12 = puVar12 + 0x1f) {
FUN_140004950(local_138,(undefined4 *)puVar12);
if (local_74 == 0) {
_Format = L"OFF - ";
LAB_1400044dc:
wprintf(_Format);
}
else {
if (local_74 == 1) {
_Format = L"LOAD - ";
goto LAB_1400044dc;
}
if (local_74 == 2) {
_Format = L"BAD - ";
goto LAB_1400044dc;
}
if (local_74 == 3) {
_Format = L"GOOD - ";
goto LAB_1400044dc;
}
}
param_3 = &local_c0;
if (7 < local_a8) {
param_3 = (undefined2 *)CONCAT62(uStack_be,local_c0);
}
wprintf(L"\tCODE:[ %d ]\tNAME:[ %s ] \n");
if (local_60 != (void *)0x0) {
operator_delete(local_60);
}
local_60 = (void *)0x0;
local_58 = 0;
local_50 = 0;
if (7 < local_a8) {
operator_delete((void *)CONCAT62(uStack_be,local_c0));
}
local_a8 = 7;
local_b0 = 0;
local_c0 = 0;
if (7 < local_d0) {
operator_delete((void *)CONCAT62(uStack_e6,local_e8));
}
local_d0 = 7;
local_d8 = 0;
local_e8 = 0;
if (7 < local_f8) {
operator_delete((void *)CONCAT62(uStack_10e,local_110));
}
local_f8 = 7;
local_100 = 0;
local_110 = 0;
}
wprintf(L"ConnectServer Count : [ %d ] \n");
param_2 = (ulonglong *)PTR_s_Server_Information__14015aff0;
if (puVar3 != (ulonglong *)0x0) {
FUN_140004b30(puVar3,puVar4);
operator_delete(puVar3);
param_2 = (ulonglong *)PTR_s_Server_Information__14015aff0;
}
LAB_140004442:
printf("%s\n");
break;
case 0x39:
local_260 = (ulonglong *)0x0;
local_258 = (ulonglong *)0x0;
local_250 = 0;
FUN_14002ce60(DAT_140162d60,(ulonglong *)&local_260);
puVar4 = local_258;
puVar3 = local_260;
for (puVar12 = local_260; puVar12 != puVar4; puVar12 = puVar12 + 0x1f) {
FUN_140004950(local_238,(undefined4 *)puVar12);
param_3 = (undefined2 *)(ulonglong)local_194;
hProcess = OpenProcess(0x1f0fff,0,local_194);
if (hProcess != (HANDLE)0x0) {
BVar8 = GetExitCodeProcess(hProcess,local_2d8);
if ((BVar8 != 0) && (local_2d8[0] == 0x103)) {
TerminateProcess(hProcess,0);
}
CloseHandle(hProcess);
}
if (local_160 != (void *)0x0) {
operator_delete(local_160);
}
local_160 = (void *)0x0;
local_158 = 0;
local_150 = 0;
if (7 < local_1a8) {
operator_delete((void *)CONCAT62(uStack_1be,local_1c0));
}
local_1a8 = 7;
local_1b0 = 0;
local_1c0 = 0;
if (7 < local_1d0) {
operator_delete((void *)CONCAT62(uStack_1e6,local_1e8));
}
local_1d0 = 7;
local_1d8 = 0;
local_1e8 = 0;
if (7 < local_1f8) {
operator_delete(local_210);
}
}
if (puVar3 != (ulonglong *)0x0) {
FUN_140004b30(puVar3,puVar4);
operator_delete(puVar3);
}
param_2 = (ulonglong *)PTR_s_All_Server_Kill__14015b008;
printf("%s\n");
break;
case 0x45:
*(undefined1 *)(param_1 + 0x60) = 0;
printf("%s\n");
return 0;
case 0x46:
wprintf(L"-AGENT SERVER [CODE:%d]---------------------------------\n");
param_3 = (undefined2 *)(ulonglong)*(uint *)(*(longlong *)(param_1 + 0xa0) + 0x38);
wprintf(L"PRIVATE NETWORK : ADDRESS[ %s ] PORT[ %d ]\n");
FUN_140001bf0(param_1 + 8);
param_2 = (ulonglong *)PTR_s_Server_Info__14015af30;
printf("%s\n");
break;
case 0x4c:
*(undefined1 *)(param_1 + 0x48) = 1;
param_2 = (ulonglong *)PTR_s_Keyboard_Locked__14015af00;
printf("%s\n");
break;
case 0x4d:
FUN_14002b820(DAT_140162d48);
lVar2 = *(longlong *)(param_1 + 0xa8);
if (lVar2 != 0) {
bVar1 = *(byte *)(DAT_140162d48 + 0x17);
param_4 = (uint *)(ulonglong)bVar1;
puVar9 = puVar14;
param_3 = puVar14;
if (*(longlong *)(lVar2 + 0x10) - *(longlong *)(lVar2 + 8) >> 3 != 0) {
do {
*(byte *)(*(longlong *)(*(longlong *)(lVar2 + 8) + (longlong)puVar9) + 0x18) = bVar1;
param_3 = (undefined2 *)(ulonglong)((int)param_3 + 1);
puVar9 = puVar9 + 4;
} while (param_3 < (undefined2 *)
(*(longlong *)(lVar2 + 0x10) - *(longlong *)(lVar2 + 8) >> 3));
}
}
param_2 = (ulonglong *)PTR_s_CustomOption_Init__14015af90;
printf("%s\n");
break;
case 0x50:
lVar2 = *(longlong *)(param_1 + 0xa0);
if (lVar2 != 0) {
local_288 = 0;
local_2c0 = 0;
local_2c8 = 0;
local_2b0 = 0;
local_2b8 = 0;
local_290 = 0;
local_298 = 0;
local_2a0 = 0;
local_2a8 = 0;
local_280 = 0;
local_278 = 0;
if (*(longlong *)(lVar2 + 0x28) != 0) {
(**(code **)(**(longlong **)(lVar2 + 0x28) + 0xb0))
(*(longlong **)(lVar2 + 0x28),&local_2c8);
printf("--------------------------------------------------\n");
printf("%I64d totalTcpReceiveCount\n");
printf("%I64d totalTcpReceiveBytes\n");
printf("%I64d totalTcpSendCount\n");
printf("%I64d totalTcpSendBytes\n");
printf("%d p2pConnectionPairCount\n");
printf("%d p2pDirectConnectionPairCount\n");
printf("%d clientCount\n");
printf("--------------------------------------------------\n");
}
}
param_2 = (ulonglong *)PTR_s_Network_Status__14015af48;
printf("%s\n");
break;
case 0x52:
DAT_140162cc4 = (uint)(DAT_140162cc4 == 0);
param_3 = (undefined2 *)&DAT_14011b9ac;
if (DAT_140162cc4 != 0) {
param_3 = (undefined2 *)&DAT_14011b9a8;
}
param_2 = (ulonglong *)PTR_s_ShowFPS__14015af60;
printf("%s %s\n");
break;
case 0x54:
printf("RetryConnectSession\n");
iVar7 = (int)(*(longlong *)(param_1 + 0x20) - *(longlong *)(param_1 + 0x18) >> 3);
puVar9 = puVar14;
if (0 < iVar7) {
do {
if (*(longlong *)(*(longlong *)(param_1 + 0x18) + (longlong)puVar9 * 8) != 0) {
*(undefined1 *)
(*(longlong *)(*(longlong *)(param_1 + 0x18) + (longlong)puVar9 * 8) + 0x1c) = 1;
}
puVar9 = (undefined2 *)((longlong)puVar9 + 1);
} while ((longlong)puVar9 < (longlong)iVar7);
}
param_2 = (ulonglong *)PTR_s_AgentManager_Retry__14015af18;
printf("%s\n");
}
LAB_1400047ca:
iVar6 = toupper(iVar6);
if (iVar6 == 0x49) {
printf("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n");
GetCurrentProcessId();
printf("ProcessID : %d\n");
printf("SVN : %d\n");
printf("Resource : %d\n");
printf("Build Date : %s\n");
param_2 = FUN_1400dcb80((ulonglong *)&local_260);
if (0xf < param_2[3]) {
param_2 = (ulonglong *)*param_2;
}
printf("PROTOCOL : %s\n");
if (0xf < local_248) {
operator_delete(local_260);
}
local_248 = 0xf;
local_250 = 0;
local_260 = (ulonglong *)((ulonglong)local_260 & 0xffffffffffffff00);
printf("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n");
}
iVar6 = _kbhit();
} while (iVar6 != 0);
}
return 2;
}