2012-03-27 2 views
-1

я пытаюсь создать код инъекции длл процесс тестирования является блокнотом и идентификатор процесса зашитыDll инъекция код

кода:

.386 
.model flat, stdcall 
option casemap:none 
include \masm32\include\windows.inc 
include \masm32\include\kernel32.inc 
includelib \masm32\lib\kernel32.lib 
include \masm32\include\masm32.inc 
includelib \masm32\lib\masm32.lib 
include \masm32\include\masm32rt.inc 


.data 
hand db "Kernel32.dll",0 
band db "LoadLibraryA",0 
dll db "C:\masm32\kntillusion.dll",0 
msg db "failed",0 
pd dd 840 

.data? 
var dd ? 
handle dd ? 
base dd ? 
written dd ? 
pr dword ? 
dr dword ? 
thd dword ? 
.code 
start: 
invoke OpenProcess,PROCESS_ALL_ACCESS,TRUE,pd 
TEST EAX, EAX 
JE CodeFail 
mov handle,eax 
invoke VirtualAllocEx,handle,NULL,sizeof dll,MEM_COMMIT,PAGE_READWRITE 
TEST EAX, EAX 
JE CodeFail 
mov base,eax 
invoke WriteProcessMemory,handle,base,addr dll,sizeof dll,offset written 
TEST EAX, EAX 
JE CodeFail 
invoke GetModuleHandle,hand 
TEST EAX, EAX 
JE CodeFail 
mov dr,eax 
invoke GetProcAddress,dr,band 
TEST EAX, EAX 
JE CodeFail 
mov pr,eax 
invoke CreateRemoteThread,handle,0,0,pr,addr dll,0,addr thd 
invoke ExitProcess,0 
CodeFail: 
invoke StdOut, addr msg 
invoke ExitProcess,0 
end start 

, когда я запускаю его я получаю следующее сообщение об ошибке

У kinject.exe возникнут проблемы, которые необходимо закрыть. Извините за неудобства.

так и советы plaftrom является Windows XP sp3

+0

Используйте отладчик для отладки вашего kinject.exe. – Abyx

+0

[формат] (http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks) ваш код! Попробуйте немного поиграть с q/a на meta.stackoverflow.com и, пожалуйста, по крайней мере, попробуйте сделать правильные предложения. –

ответ

1

Это немного сложнее, чем то, что вы здесь. Вы не можете просто передать адрес DLL-имени в текущем процессе как аргумент lpStartAddress для CreateRemoteThread в другом процессе. Вы должны ввести код в другой процесс, чтобы он вызывал вызов LoadLibrary, чтобы привести вашу настраиваемую DLL в этот процесс, а затем ваша логика загрузки может передать управление функции в эту DLL. Эта функция также должна быть обнаружена GetProcAddress в удаленном процессе, так как адрес может отличаться от того, что находится в процессе инъекции.

+0

Пятно на! Если вы хотите посмотреть, как это делается, просто проанализируйте некоторые вредоносные программы;) – fileoffset

 Смежные вопросы

  • Нет связанных вопросов^_^