Я снова въехал в стену и мне нужна твоя помощь с некоторыми вещами низкого уровня.Я уже преуспел в перехвате экспортированных функций DLL ( с этим кодом между прочим. ), введя их в мой целевой процесс (например, я могу легко обойти MessageBoxW
из user32.dll
).К сожалению, я стремлюсь к другому сценарию: мне нужно обойти функцию , определенную внутри исполняемого файла , в которую я внедряю свой код.Приложение с открытым исходным кодом, поэтому я знаю все о функции, которая понадобится мне для его перехвата, но двоичный файл подписан сертификатом, поэтому я не могу скомпилировать свою собственную версию.Можно ли получить адрес функции во время выполнения или обойти его другим методом?Цель - это «нормальный» 32-битный двоичный файл Windows.ничего особенного я не подумал;)
Ваш, Нефариус
РЕДАКТИРОВАТЬ: возможно, из-за моего слабого английского я не был достаточно подробным, поэтому вот небольшой пример кода:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
{
foo();
}
BOOL foo(char* someData)
{
return printf("%s", someData);
}
Теперь я хочу обойти функцию foo()
, которой нет в динамической библиотеке.Это моя проблема.Я не знаю как, и я не уверен, что это работает так, как я думаю.
РЕДАКТИРОВАТЬ: Теперь я знаю, что это возможно, поэтому важный вопрос изменился на: как?Как мне получить нужную мне информацию?адрес функции?