блин... берешь ImageBaseAddress, он указывает на то место, куда промаппирован твой бинарник, находишь смещение NT-заголовков относительно этого...
да... большое спасибо! я по глупости упустил этот момент из виду... теперь перед вызовом делаю sub rsp, 8... на первичных тестах работает, как...
спасибо, но можно поподробнее объяснить, почему адрес возврата может портить стек... дело в том, что после ret из EntryPoint поток должен...
хе-хе... да... в Boost.Preprocessor таких зачетных вещей много... особенно понравился там эмулятор рекурсии)))
внедряю в другой x64-процесс x64-exe файл, настраиваю ему релоки, импорты... вызываю точку входа внутри чужого процесса с помощью кода: nop mov...
что-то типа Emu8086?
4000h нопов в листинге кода... красотища)))
ну скажем знающему человеку удобно, а новичку... хотя не знаю... надо быть довольно тупым, чтобы не понять как писать макефайлы))) у меня никогда...
не обязательно... там все через окошки настраивается... можно кстати еще и интринсикой пользоваться, как ещё одной альтернативой вставок)))) а еще...
асм-вставки не работают под x64 кстати... там надо создавать отдельный asm-файл, и указывать что его надо компилить студийным масмом... это как...
я обычно делаю в виде массивов, только надо опкоды знать для этого: BYTE Code[0x4005]; for(DWORD t = 0; t < 0x4000; t++) { Code[t] = 0x90; } //...
это "украшенное" имя... создайте def-файл)))
спасибо за советы! буду пробовать!
Такая проблема, не знал куда запостить, положил в бегинерс, так как сам полный профан в этом... Есть программа написанная мной, которая...
вот адекватное решение из n00bk1t: if(SystemProcessInformation==SystemInformationClass) { // Processes int iChanged=0;...
пуффф... нда... зачем все это? какие-то буфферы дополнительные... ужас... будьте проще... если по вашему коду: вот вы копируете неспрятываемые...
TLS (Thread Local Storage) не подходит? http://msdn.microsoft.com/en-us/library/ms686749%28VS.85%29.aspx
вот вы опять бред пишите... какие ещё -1 и пустые строчки, зачем это? если вам нужно скрыть процесс, то поменяйте в предыдущей структуре...
достаточно перехватить NtQuerySystemInformation, все функции так или иначе к ней спускаются... (или я не прав?)... что-то вы бред написали,...
а как определять паразитный поток? по адресу его старта или еще как-то?
Имена участников (разделяйте запятой).