Сейчас на форуме: ==DJ==[ZLO], Magister Yoda, Rio (+6 невидимых) |
eXeL@B —› Основной форум —› Написание Loader'а |
Посл.ответ | Сообщение |
|
Создано: 10 января 2005 06:56 · Личное сообщение · #1 |
|
Создано: 10 января 2005 07:28 · Личное сообщение · #2 |
|
Создано: 10 января 2005 07:57 · Личное сообщение · #3 |
|
Создано: 10 января 2005 09:09 · Личное сообщение · #4 |
|
Создано: 10 января 2005 09:11 · Личное сообщение · #5 |
|
Создано: 11 января 2005 10:58 · Поправил: TiTBiT · Личное сообщение · #6 Tim Вот исходник: 486 .model flat, stdcall option casemap :none include f:\masm32\include\windows.inc include f:\masm32\include\masm32.inc include f:\masm32\include\user32.inc include f:\masm32\include\kernel32.inc include f:\masm32\include\shell32.inc includelib f:\masm32\lib\masm32.lib includelib f:\masm32\lib\user32.lib includelib f:\masm32\lib\kernel32.lib includelib f:\masm32\lib\shell32.lib ; include - необходимый минимум для нашей проги .data App db "Loader for : ZHANGMEN 9.1 for Windows ",0 ; Ну эт я над прогой такой издевался Err1 db "Я нахожусь в папке с прогой? Нет? Тогда помести меня туда!!! ",13,10 ; Обломов db "Хех, тебе придется запустить меня еще раз )",13,10 db "Нажми oK для того чтобы закрыть..",0 prog db "zmwin9us_demo.exe",0 ; Имя проги bufwr1 DWORD 0ebh ; bufwr2 DWORD 51h va1 DWORD 4E3E21h ; Это первый адрес, по которому надо произвести запись va2 DWORD 4E3E22h .data? bufr dw ? ; Байт, в который производится чтение pinfo PROCESS_INFORMATION <> ; Это Инфа о процессе sinfo STARTUPINFO <> ; Это инфа о запуске n DWORD ? ; Кол-во байтов .code start: ; Оффицильное начало invoke CreateProcess,addr prog,NULL,NULL,NULL,FALSE,CREATE_NEW_CONSOLE OR NORMAL_PRIORITY_CLASS,NULL,NULL,addr sinfo,addr pinfo .IF eax == 0 ; Если EAX(результат) равен 0(прога не запустилась) invoke MessageBox,NULL,addr Err1,addr App,MB_OK ; Выдаем сообщение invoke ExitProcess,0 ; И выходим .ENDIF .WHILE TRUE ; Это цикл. Вот за такие high-level макросы я очень MASM люблю invoke ReadProcessMemory,pinfo.hProcess,va1,addr bufr,1,n ; Читаем память .IF eax != 0 ; Если все ОК .IF bufr != 00h invoke Sleep,100 ; Слипаем глаза, пока аспр проверяет целостность кода invoke SuspendThread,addr pinfo.hThread ; Тормозим нашу прогу invoke WriteProcessMemory,pinfo.hProcess,va1,addr bufwr1,1,n invoke WriteProcessMemory,pinfo.hProcess,va2,addr bufwr2,1,n invoke ResumeThread,addr pinfo.hThread ; Отправляем прогу дальше invoke CloseHandle,pinfo.hThread ; Сворачиваем мокруху invoke ExitProcess,0 ; Уходим .ENDIF .ENDIF .ENDW end start ; Оффициальный конец |
|
Создано: 11 января 2005 12:40 · Личное сообщение · #7 |
eXeL@B —› Основной форум —› Написание Loader'а |
Эта тема закрыта. Ответы больше не принимаются. |