eXeL@B —› Вопросы новичков —› CreateRemoteThread -> Access violation |
Посл.ответ | Сообщение |
|
Создано: 02 января 2020 20:03 · Поправил: wcy97484 · Личное сообщение · #1 Так, в общем Target Process: hello_box.exe (пустышка) Язык: C++ Ловим ProcessHandle, выделяем память, пихаем в нее функцию c++, описанную выше. Пример: Code:
К Hello_box приатачен x32dbg, по карте памяти - функция верно ложится в память, но кода открываю поток на это - ловлю EXCEPTION#5 - ACCESS VIOLATION Причем на операции еще до существенного тела функции: Code:
Что я делаю не так ? Если я делаю просто Объявление переменных в функции как C++, без Inline ASM / просто inline ASM - все ровно без ошибок. Как только я начинаю использовать функции c++ внутри инжектируемой функции / обращаться к переменным объявленных в c++, из inline asm - ловлю эту ошибку. В чем может быть ошибка ? Добавлено спустя 47 минут Решено, int x -> DWORD x, все ок. Но до сих пор не понимаю, как использовать c++ функции тут. Добавлено спустя 57 минут Когда я говорю про функции c++, элементарный MessageBoxA |
|
Создано: 02 января 2020 21:07 · Личное сообщение · #2 |
|
Создано: 02 января 2020 21:08 · Личное сообщение · #3 Не, чето я совсем запутался. Ребят, пытаюсь рядомлежащую функцию c++ инжектировать в target process. Скажите мне пожалуйста, как лаконично: 1. Использовать функции c++ в этой функции, чтобы они отрабатывали в целевом процессе 2. Декларировать переменные в c++, и использовать их в Inline asm. Конкретно интересуют типы, int/DWORD/CHAR/BYTE/CHAR */BYTE * Добавлено спустя 1 минуту difexacaw, у меня ошибка #5 не в инжектирующем приложении, а в целевом(target) приложении. Добавлено спустя 3 минуты difexacaw, то есть есть просто сделать в этой функции __asm { mov eax, ebx; mov ebx, ecx; mov ecx, edx;} ( как сэмпл), и глянуть в pointer, который был определен VirtualAllocEx все записано верно, и исполняется. Но если делать не сэмпл код а пытаться делать что я описал выше(тоже собственно не сложные операции), возникает эта ошибка. |
|
Создано: 02 января 2020 21:23 · Поправил: difexacaw · Личное сообщение · #4 |
|
Создано: 02 января 2020 21:53 · Личное сообщение · #5 |
|
Создано: 02 января 2020 22:03 · Личное сообщение · #6 |
|
Создано: 02 января 2020 23:23 · Личное сообщение · #7 |
|
Создано: 03 января 2020 08:27 · Личное сообщение · #8 |
|
Создано: 03 января 2020 08:52 · Личное сообщение · #9 |
|
Создано: 03 января 2020 19:25 · Личное сообщение · #10 rmn Загрузчик будет работать с иной средой, есть вещи которые нельзя локально перезапустить. По этой причине и нельзя сбросить загрузчик, он выполняет действия которые не могут быть локально повторены в том же процессе(нп соединение с csr и передача манифеста). Зачем эти трудности, пусть собирает нэйтивный код. ----- vx |
|
Создано: 04 января 2020 01:36 · Личное сообщение · #11 |
|
Создано: 04 января 2020 17:20 · Личное сообщение · #12 |
|
Создано: 06 января 2020 12:03 · Личное сообщение · #13 |
|
Создано: 06 января 2020 12:05 · Личное сообщение · #14 |
|
Создано: 06 января 2020 13:40 · Личное сообщение · #15 Ну собственно, среда не подгружена, как и догадывался, как и написали выше, можно бесконечно **аться с этим, но я решил грузить сторонний файл. Пробнул PE файл с указанием на Entry Point, но опять же этого недостаточно, потому что не зря PE файл есть PE файл, а не шеллкод, поэтому решение мое оказалось тривиальным - грузить DLL. |
eXeL@B —› Вопросы новичков —› CreateRemoteThread -> Access violation |