addhaloka
Gold Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Задумка в том, чтобы на x86 системе запускался ProcessHacker\x86\ProcessHacker.exe, а на x64, соответственно - ProcessHacker\x64\ProcessHacker.exe. Установка - распаковать папку ProcessHacker куда-нибудь, запускать через лаунчер ProcessHacker\Process Hacker.exe. В зависимости от разрядности OS запустится нужная разрядность PH. Папку ProcessHacker и лаунчер можно переименовать по вкусу, папки x64 и x86 нельзя, т. е. структуру расположения папок/файлов внутри папки ProcessHacker не трогать, можно только удалить или переименовать папку info. http://www.upload.ee/files/4695237/processhacker-2.35-x86-x64-portable.7z.html p.s. Исходник лаунчера (FASM): Код: ;--------------------------------------------- ; ProcessHacker launcher ; Copyright (C) addhaloka ;--------------------------------------------- format PE GUI 4.00 entry start include 'win32w.inc' section '.text' code readable executable align 4 nothing_error: invoke MessageBox,0,szerr,caption,MB_ICONEXCLAMATION jmp exit getdir: push edi invoke GetModuleFileName,0,curdir,MAX_PATH*2 invoke lstrlen,curdir imul eax,2 mov edi,eax add edi,curdir @@: cmp word ptr ds:edi,005Ch je @F dec edi jmp @B @@: mov word ptr ds:edi+1h,0 pop edi ret proc existW push ebp mov ebp,esp add esp,0FFFFFDB0h lea eax,[ebp-250h] push eax push dword[ebp+8] call [FindFirstFileW] cmp eax,0FFFFFFFFh jne @F mov eax,0 jmp .endexist @@: push eax call [FindClose] mov eax,1 .endexist: leave retn 4 endp start: invoke GetNativeSystemInfo,sysinfo cmp [sysinfo.wProcessorArchitecture],0 je @f call getdir invoke lstrcat,curdir,exe64 stdcall existW,curdir cmp eax,0 je nothing_error invoke lstrcpy,exepath,curdir call getdir invoke lstrcat,curdir,path64 invoke ShellExecute,0,0,exepath,0,curdir,10 jmp exit @@: call getdir invoke lstrcat,curdir,exe32 stdcall existW,curdir cmp eax,0 je nothing_error invoke lstrcpy,exepath,curdir call getdir invoke lstrcat,curdir,path32 invoke ShellExecute,0,0,exepath,0,curdir,10 exit: invoke ExitProcess,0 section '.data' data readable writeable caption du 'Warning!',0 szerr du 'ProcessHacker.exe is not found!',0Dh,0Ah du 'Please check location of run.',0 exe32 du 'x86\ProcessHacker.exe',0 exe64 du 'x64\ProcessHacker.exe',0 path32 du 'x86\',0 path64 du 'x64\',0 section '.bss' readable writeable curdir du MAX_PATH dup(?) exepath du MAX_PATH dup(?) sysinfo SYSTEM_INFO <> section '.idata' import data readable writeable library kernel32,'KERNEL32.DLL',\ shell32,'SHELL32.DLL',\ user32,'USER32.DLL' include 'api/kernel32.inc' include 'api/user32.inc' include 'api/shell32.inc' section '.rsrc' resource data readable directory RT_ICON,icons,\ RT_GROUP_ICON,group_icons,\ RT_MANIFEST,_manifest,\ RT_VERSION,versions resource icons,\ 1,0x0409,icon_data1,\ 2,0x0409,icon_data2,\ 3,0x0409,icon_data3 resource group_icons,\ 100,0x0409,main_icon resource _manifest,\ 1,0x0409,manifest resource versions,\ 1,0x0409,version icon main_icon,\ icon_data1,'res/48x48.ico',\ icon_data2,'res/32x32.ico',\ icon_data3,'res/16x16.ico' resdata manifest file 'res/manifest.xml' endres versioninfo version,VOS__WINDOWS32,VFT_APP,VFT2_UNKNOWN,0x0409,0x04E4,\ 'CompanyName','addhaloka',\ 'FileDescription','Process Hacker portable launcher',\ 'FileVersion','1.0.0.0' |
|