![]() |
eXeL@B —› Программирование —› GetProcAddress |
Посл.ответ | Сообщение |
|
Создано: 02 февраля 2013 15:09 · Личное сообщение · #1 В одной проге столкнулся с тем, что GetProcAddress указывает на apphelp. При вызове getproca c параметром CreateProcessW получаю адрес в AcLayers. Раньше такое наблюдал при режиме совместимости. Проблема в том, что прога вызывает CreateProc из кернела напрямую, а мне надо его перехватить. Есть ли способ получить нормальный адрес из кернела? Руками парсить экспорт не сильно хочется. ![]() |
|
Создано: 02 февраля 2013 16:10 · Личное сообщение · #2 Совместимость и есть, application compatibility layers. А вызываешь откуда, из инжекченой длл? Теоретически можно дёрнуть из другого процесса, если архитектура позволяет. А в своём процессе повырубать совместимость уже. Как вариант-спустись пониже и хукай функции ниже, ибо совместимость захардкодена для некоторых функций по сути. ![]() |
|
Создано: 02 февраля 2013 16:14 · Поправил: Nightshade · Личное сообщение · #3 |
|
Создано: 02 февраля 2013 16:22 · Личное сообщение · #4 Для кернела совпадёт в пределах 1 сессии, так что можешь дёргать. Если либа с экспортом совсем левая, пересчитай с учётом другой базы, всяко проще, чем экспорт парсить. Как вариант-отключи shimming вообще в системе. Для парсера экспорта язык бы указал. Да и загуглить его не проблема, почти во всех пакерах юзается. ![]() |
|
Создано: 02 февраля 2013 17:09 · Личное сообщение · #5 |
|
Создано: 02 февраля 2013 17:26 · Личное сообщение · #6 ну как-то так: Code:
----- [nice coder and reverser] ![]() |
|
Создано: 02 февраля 2013 20:51 · Личное сообщение · #7 Получилось так: Code:
спс за код ![]() |
![]() |
eXeL@B —› Программирование —› GetProcAddress |
Эта тема закрыта. Ответы больше не принимаются. |