|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.02.2010, 21:57 | #1 |
Пользователь
Регистрация: 27.02.2010
Сообщений: 12
|
Создание сигнатуры функций для поиска их в памяти процесса
Требуется найти адреса двух функций в процессе. Для этого мне посоветовали создать сигнатуру и по ней искать. Но составить сигнатуру мне так и не удалось (только нервные клетки сгубил). Каким образом ее можно сделать? Пожалуйста, объясните.
Полный исходный код искомых функций имеется, при необходимости выложу. |
27.02.2010, 22:13 | #2 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Имеется ввиду наверное то, что вам стоит скомпилить данные функции, открыть их (его .exe, .dll....) в WinHex (например). Найти например по меткам каким либо (данные свои описать и т.п.) скопировать их код, например первые 64 байта или т.п. Вот вам и сигнатуры.
|
28.02.2010, 00:45 | #3 |
Пользователь
Регистрация: 27.02.2010
Сообщений: 12
|
BOBAH13
Вот на этом-то я мозг и сломал. Эти функции написаны таким образом, что их отдельно не скомпилировать. Куча собственных типов, структур от структур, которые я сойду с ума вырезать. А как обрежу конец функции - этот компилятор-оптимизатор недоделанный обязательно что-то вырежет. Надеялся, что найдется способ полегче. P.S. Пока писал - нашел! Взять исходники, подменить exe на dll, выставив нужные функции в экспорт, затем через API-функции найти их адрес и на лету попереть машинный код . Должно получиться |
28.02.2010, 23:17 | #4 |
Пользователь
Регистрация: 27.02.2010
Сообщений: 12
|
Есть ли какие-то функции для поиска сигнатуры в памяти процесса?
Последний раз редактировалось Zlyden'; 28.02.2010 в 23:28. |
28.02.2010, 23:28 | #5 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Со словом дизассемблер знакомы ? Поищите, все найдете.
|
28.02.2010, 23:59 | #6 |
Пользователь
Регистрация: 27.02.2010
Сообщений: 12
|
|
01.03.2010, 00:07 | #7 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
почитайте тут, чуть ниже там есть
http://www.xakep.ru/magazine/xs/057/084/1.asp |
01.03.2010, 08:38 | #8 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
А я имел ввиду, чтобы
1. откомпилить ваши функции 2. открыть в дизасме готовый ехе (или что там у вас) 3. найти нужные функции по коду asm 4. найти соответствующие адреса этих функций в exe 5. копи-паст готового hex-кода - то бишь ваших сигнатур |
01.03.2010, 17:30 | #9 | ||
Пользователь
Регистрация: 27.02.2010
Сообщений: 12
|
Цитата:
Цитата:
Да, и еще вопрос. Я получил сигнатуры с помощью скомпилированной dll, но когда я искал этот код в .ехе, я обнаружил очень похожий - первые 9 байт совпадали 100%, остальные байты совпадали 60х40. Это так и должно быть? Я имею ввиду, что это зависит от компиляции, и при разных настройках компилятор реализует функцию по-разному? Последний раз редактировалось Zlyden'; 01.03.2010 в 17:55. |
||
01.03.2010, 19:20 | #10 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
1. Да. Разные настройки компилятора - разный генерируемый код.
2. Для чтения и записи в память другого процесса - OpenProcess, ReadProcessMemory, WriteProcessMemory - see MSDN |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Считать значение из памяти чужого процесса | EvgenyZ | Win Api | 2 | 27.11.2009 09:29 |
Чтение данных из памяти процесса (need help) | lexastik | Win Api | 10 | 26.02.2009 20:50 |
Редактирование памяти процесса (Delphi) | Air | Помощь студентам | 4 | 17.10.2008 15:19 |
Редактирование памяти процесса | Air | Win Api | 6 | 16.02.2008 20:15 |