-
Постов
143 -
Зарегистрирован
-
Посещение
-
Победитель дней
3
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные Senpai
-
-
Всем привет.
В общем, компилирую приложение в visual studio .
Если компилить в MT ,то приложение будет работать на других компах и всё нормально, но если взять адрес функции, то мы получим не адрес начала функции, а адрес на прыжок в начало функции.(с MDd такого не происходит, но тогда приложение не работает на других компьютерах)
В c++ builder всё нормально, взяв адрес функции, мы попадём сразу в её начало.Спойлер
Так в VS с выбранной библиотекой времени выполнения MTСпойлер
Вот так в c++ builder
Спойлер -
Вот, что-то писал когда-то
Спойлерcase EXCEPTION_BREAKPOINT: { if (addres == (DWORD)debug_event.u.Exception.ExceptionRecord.ExceptionAddress) { m_thHandle = OpenThread(THREAD_ALL_ACCESS, false, debug_event.dwThreadId); CONTEXT lpContext; lpContext.ContextFlags = CONTEXT_FULL; GetThreadContext(m_thHandle, &lpContext); ccxt = lpContext; WriteProcessMemory(m_handle, (LPVOID)addres, &buffer, 1, NULL); FlushInstructionCache(m_handle, (void*)addres, 1); lpContext.EFlags |= 0x100; // EFLAGS_TF --lpContext.Eip; // правим на начало правильной инструкции SetThreadContext(m_thHandle, &lpContext); CloseHandle(m_thHandle); } }
Надеюсь, ещё не забросил
- 1
-
40 минут назад, partoftheworlD сказал:
Вот крутая книга по написанию отладчика на Python, winapi и в африке winapi, так что, даже, если пишешь на плюсах проблем с портированием не будем, плюс узнаешь много нового.
https://www.reverse4you.org/translate/GHP/Book/Gray_Hat_Python.pdfА там Memory Breakpoint есть? Типа брейкпоинт на память на доступ/запись?
-
перезаписывать нужно только первый байт на инструкцию int3 (нопы потом никакие не нужны)
Компиляция в MT visual studio
in Низкоуровневое программирование
Опубликовано
так это, нуу. Не оч как-то таскать с собой dll ?