Сейчас на форуме: vsv1 (+5 невидимых) |
eXeL@B —› Вопросы новичков —› Как использовать класс в fastcall при инжекте |
Посл.ответ | Сообщение |
|
Создано: 12 февраля 2016 21:53 · Поправил: bolvai · Личное сообщение · #1 Возможно ли при инжекте/Хукинге заместо простой функции - использовать полноценный класс. На данный момент по старинке делаю так - Code:
Code:
Проблема в том что в этом загрузчике есть особый класс TArray, который получает синхронизированные данные из 1 места в другое. Выглядит это таким образом Code:
А Используется таким образом: Code:
Достаточно просто указателя *MyImport. Чтобы другой обработчик FName::FName вернул по значению индекса - строку. Code:
Но и вся проблема как раз заключается в том что там идет синхронизация массива ибо все операции в 1ом классе, а я принимаю этот класс как Функцию, и мне приходиться объявлять массивы за пределами функции, и данные попросту не хотят добавляться в массив. Как это возможно решить ? |
|
Создано: 12 февраля 2016 22:40 · Личное сообщение · #2 |
|
Создано: 12 февраля 2016 22:48 · Личное сообщение · #3 bolvai вопрос.. причем тут fastcall ? вы книжки читать пробовали? или гуглить? ТИП вызова, это всего лишь способ передачи параметров. т.е способ связи ..т.е. то КАК компиль должен сформировать данные.. инжект.. ну это внедрение в чужой процесс.. на чем он сделан? какой способ параметров там? вы пытаетесь написать код не считаясь с исходными данными? Добавлено спустя 4 минуты ЗЫ. т.е способ вызова процедуры.. это только лишь описание, как будут передаваться аргументы. через регистры, через стек, в прямом или обратном порядке.. ВСЕ! если у вас косяк... проверьте в дебагере че вы там насовали ----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... | Сообщение посчитали полезным: igorca |
|
Создано: 12 февраля 2016 23:27 · Поправил: bolvai · Личное сообщение · #4 reversecode пишет: нихрена непонятно Извиняюсь уж очень задолбался весь день с этой фигней, перепробовал ничего не помогает, не знаю еще как описывать вам. VodoleY пишет: вопрос.. причем тут fastcall ? вы книжки читать пробовали? или гуглить? ТИП вызова, это всего лишь способ передачи параметров. т.е способ связи ..т.е На счет типа вызова, я ведь не могу использовать Fastcall,Stdcall поверх класса(я это имел ввиду ибо нужно обозначать тип вызова если я делаю инжект), метод у меня там Trampoline(Detoor),второй параметр это функция. VodoleY пишет: ВСЕ! если у вас косяк... проверьте в дебагере че вы там насовали Да у меня косяк при добавлении в массив TArray<FName> NameMap; NameMap.AddItem(NameEntry.Name); Критует, причем с любыми параметрами, толи оператора не хватает толи чего ? Нельзя ли как то сделать проверку Catch trow ? Ибо ошибка в самом приложение(к которому инжект идет) совсем другая(точнее общая, не указывает она что конкретно не так). |
|
Создано: 12 февраля 2016 23:36 · Личное сообщение · #5 |
|
Создано: 13 февраля 2016 00:18 · Личное сообщение · #6 reversecode пишет: плюсы нужно знать, что бы не плутать Я пытаюсь учить плюсы на конкретных задачах, а не напирать на весь объем который там описан в книгах, вы же даже не сказали что тут конкретно подучить надо - да и тут проблема в том что я не очень понимаю возможно ли использовать Class в качестве представления для инжекта или нет (т.е такое работает только с функциями) ? |
|
Создано: 13 февраля 2016 00:23 · Поправил: reversecode · Личное сообщение · #7 |
|
Создано: 13 февраля 2016 10:00 · Личное сообщение · #8 |
|
Создано: 13 февраля 2016 16:52 · Личное сообщение · #9 |
eXeL@B —› Вопросы новичков —› Как использовать класс в fastcall при инжекте |