Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz

18.04.2010, 10:50
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме: 2364957
Репутация:
479
|
|
ZwCreateThread
Такой вопрос - как ее правильно вызывать? Какой минимум параметров ей нужен, и как ей передать виртуальный адрес старта. Я нашел описание ее:
NTSYSAPI
NTSTATUS
NTAPI ZwCreateThread(
OUT PHANDLE ThreadHandle, //понятно
IN ACCESS_MASK DesiredAccess, //понятно
IN POBJECT_ATTRIBUTES ObjectAttributes, //понятно
IN HANDLE ProcessHandle, //понятно
OUT PCLIENT_ID ClientId, //понятно
IN PCONTEXT ThreadContext,
IN PUSER_STACK UserStack,
IN BOOLEAN CreateSuspended //понятно
);
остается 2 параметра
IN PCONTEXT ThreadContext,
IN PUSER_STACK UserStack,
подозреваю, что в какую-то из этих структур надо передавать адрес старта
p.s. - запускаю из ядра
|
|
|

18.04.2010, 12:00
|
|
Познающий
Регистрация: 22.02.2010
Сообщений: 30
Провел на форуме: 188597
Репутация:
15
|
|
Может это поможет:
ThreadContext
Points to a structure that specifies the initial values of the processor registers for the
thread.
UserStack
Points to a structure that specifies the user mode stack of the thread.
typedef struct _USER_STACK {
PVOID FixedStackBase;
PVOID FixedStackLimit;
PVOID ExpandableStackBase;
PVOID ExpandableStackLimit;
PVOID ExpandableStackBottom;
} USER_STACK, *PUSER_STACK;
|
|
|

18.04.2010, 12:03
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме: 2364957
Репутация:
479
|
|
я это тоже видел, похоже что не там адрес начала, а где-тот в IN PCONTEXT ThreadContext
|
|
|

18.04.2010, 12:24
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме: 2364957
Репутация:
479
|
|
нашел описание структуры context
typedef struct {
double Fpr0;
double Fpr1;
double Fpr2;
double Fpr3;
double Fpr4;
double Fpr5;
double Fpr6;
double Fpr7;
double Fpr8;
double Fpr9;
double Fpr10;
double Fpr11;
double Fpr12;
double Fpr13;
double Fpr14;
double Fpr15;
double Fpr16;
double Fpr17;
double Fpr18;
double Fpr19;
double Fpr20;
double Fpr21;
double Fpr22;
double Fpr23;
double Fpr24;
double Fpr25;
double Fpr26;
double Fpr27;
double Fpr28;
double Fpr29;
double Fpr30;
double Fpr31;
double Fpscr;
DWORD Gpr0;
DWORD Gpr1;
DWORD Gpr2;
DWORD Gpr3;
DWORD Gpr4;
DWORD Gpr5;
DWORD Gpr6;
DWORD Gpr7;
DWORD Gpr8;
DWORD Gpr9;
DWORD Gpr10;
DWORD Gpr11;
DWORD Gpr12;
DWORD Gpr13;
DWORD Gpr14;
DWORD Gpr15;
DWORD Gpr16;
DWORD Gpr17;
DWORD Gpr18;
DWORD Gpr19;
DWORD Gpr20;
DWORD Gpr21;
DWORD Gpr22;
DWORD Gpr23;
DWORD Gpr24;
DWORD Gpr25;
DWORD Gpr26;
DWORD Gpr27;
DWORD Gpr28;
DWORD Gpr29;
DWORD Gpr30;
DWORD Gpr31;
DWORD Cr;
DWORD Xer;
DWORD Msr;
DWORD Iar;
DWORD Lr;
DWORD Ctr;
DWORD ContextFlags;
DWORD Fill[3];
DWORD Dr0;
DWORD Dr1;
DWORD Dr2;
DWORD Dr3;
DWORD Dr4;
DWORD Dr5;
DWORD Dr6;
DWORD Dr7;
} CONTEXT;
но где тут регистры общего назначения и EIP?
|
|
|

18.04.2010, 12:28
|
|
Познающий
Регистрация: 12.12.2007
Сообщений: 81
Провел на форуме: 589075
Репутация:
53
|
|
инфо о стеке извлекай из ZwQuerysection из структуры SECTION_IMAGE_INFORMATION оттуда и о значение eip и esp
|
|
|

18.04.2010, 12:39
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме: 2364957
Репутация:
479
|
|
Сообщение от 12usver12
инфо о стеке извлекай из ZwQuerysection из структуры SECTION_IMAGE_INFORMATION оттуда и о значение eip и esp
мне как бы надо не извлечь, а прописать, чтобы поток стартовал с моим EIP
|
|
|

18.04.2010, 12:51
|
|
Познающий
Регистрация: 12.12.2007
Сообщений: 81
Провел на форуме: 589075
Репутация:
53
|
|
я все таки не могу понять - ты с нуля запускаешь процесс из ядра или на каком-то этапе перехватываешь уже созданный процесс ?
|
|
|

18.04.2010, 13:15
|
|
Познающий
Регистрация: 12.12.2007
Сообщений: 81
Провел на форуме: 589075
Репутация:
53
|
|
ты неправильное описание структуры взял или неполное
CONTEXT context = {CONTEXT_FULL};
context.Eip = (SECTION_IMAGE_INFORMATION)si.EntryPoint ну или свою подставляй
|
|
|

18.04.2010, 13:37
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме: 2364957
Репутация:
479
|
|
Сообщение от 12usver12
ты неправильное описание структуры взял или неполное
CONTEXT context = {CONTEXT_FULL};
context.Eip = (SECTION_IMAGE_INFORMATION)si.EntryPoint ну или свою подставляй
я брал с MSDN
p.s. в студии есть норм. сейчас попробую
Последний раз редактировалось ntldr; 18.04.2010 в 13:44..
|
|
|

18.04.2010, 14:15
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме: 2364957
Репутация:
479
|
|
а как заполнять структуру USER_STACK
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|