r00tkit
پنج شنبه 08 مهر 1389, 21:25 عصر
سلام
استاد Inpy یه مثال زده بود با دلفی (که برای متوجه شدنش رفتم10 دقیقه ای دلفی رو یاد گرفتم البته فقط syntax )
منم تو c/C++ با یه روش دیگه نوشتم
اول calc رو اجرا کنید بعد برنامه رو بعد title ماشین حساب رو ببینید
#include<stdio.h>
#include<iostream>
#include<Windows.h>
#define DLLname "d:\\a.dll"
int main()
{
DWORD pid=4672;
GetWindowThreadProcessId(FindWindow(NULL,"Calculator"),&pid);
HANDLE ph;
LPVOID gp,sp;
gp=(LPVOID)GetProcAddress(GetModuleHandle("Kernel32.dll"),"LoadLibraryA");
ph=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);
sp=(LPVOID)VirtualAllocEx(ph,NULL,strlen(DLLname), MEM_RESERVE|MEM_COMMIT,PAGE_READWRITE);
if(!WriteProcessMemory(ph,(LPVOID)sp,DLLname,strle n(DLLname),NULL))
{
std::cout<<"error code:"<<GetLastError();
}
else
{
if(!CreateRemoteThread(ph,NULL,0,(LPTHREAD_START_R OUTINE)gp,(LPVOID)sp,0,NULL))
{
std::cout<<"error code:"<<GetLastError();
}
}
}
اینم سورس DLL
#include<Windows.h>
BOOLEAN WINAPI DllMain( HINSTANCE hDllHandle,DWORD nReason, LPVOID Reserved)
{
MessageBox(NULL,"hi","its a MessageBOX",MB_OK);
SetWindowText(FindWindow(NULL,"Calculator"),"i am geek");
return TRUE;
}
استاد Inpy یه مثال زده بود با دلفی (که برای متوجه شدنش رفتم10 دقیقه ای دلفی رو یاد گرفتم البته فقط syntax )
منم تو c/C++ با یه روش دیگه نوشتم
اول calc رو اجرا کنید بعد برنامه رو بعد title ماشین حساب رو ببینید
#include<stdio.h>
#include<iostream>
#include<Windows.h>
#define DLLname "d:\\a.dll"
int main()
{
DWORD pid=4672;
GetWindowThreadProcessId(FindWindow(NULL,"Calculator"),&pid);
HANDLE ph;
LPVOID gp,sp;
gp=(LPVOID)GetProcAddress(GetModuleHandle("Kernel32.dll"),"LoadLibraryA");
ph=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);
sp=(LPVOID)VirtualAllocEx(ph,NULL,strlen(DLLname), MEM_RESERVE|MEM_COMMIT,PAGE_READWRITE);
if(!WriteProcessMemory(ph,(LPVOID)sp,DLLname,strle n(DLLname),NULL))
{
std::cout<<"error code:"<<GetLastError();
}
else
{
if(!CreateRemoteThread(ph,NULL,0,(LPTHREAD_START_R OUTINE)gp,(LPVOID)sp,0,NULL))
{
std::cout<<"error code:"<<GetLastError();
}
}
}
اینم سورس DLL
#include<Windows.h>
BOOLEAN WINAPI DllMain( HINSTANCE hDllHandle,DWORD nReason, LPVOID Reserved)
{
MessageBox(NULL,"hi","its a MessageBOX",MB_OK);
SetWindowText(FindWindow(NULL,"Calculator"),"i am geek");
return TRUE;
}