robinbobin ([personal profile] robinbobin) wrote2005-08-04 10:48 pm

Процесс пойдет

Задачка.

Хочу написать лоадер, который будет загружать в свой address space другую app.exe.
т.е. можно просто написать свой лоадер который будет разбирать app.exe и закидывать это в адрес спейс. когда то давно такое делал, но это долго а те сорцы потеряны. rip.

Хочется как-то по быстрому изгольнутся типа

LPTHREAD_START_ROUTINE lpStartAddress;
DWORD dwStart = 0x01012420;
DWORD dwThreadId;

HMODULE hCalc = LoadLibrary ("calc.exe");
lpStartAddress = (LPTHREAD_START_ROUTINE) dwStart;

HANDLE hStartCalcAsThread = CreateThread(
NULL, // SD
0, // initial stack size
lpStartAddress, // thread function
0, // thread argument
CREATE_SUSPENDED, // creation option
&dwThreadId // thread identifier
);

DWORD dwRes = ResumeThread (hStartCalcAsThread);

WaitForSingleObject (hStartCalcAsThread, INFINITE);


Но нифига. Когда этот калк запускается - 0xC0000005: Access Violation.

тоже самое если просто джамп на ентрипоинт

__asm {
jmp dwStart;
}

any idea?

надо както быстро это сделать....

[identity profile] yms.livejournal.com 2005-08-05 05:44 am (UTC)(link)
Колдуй баба, колдуй дед,
Трое сбоку - ваших нет,
Туз бубновый, гроб сосновый,
Гугел-гугел, дай ответ!