![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Townsmen |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 20.7.2011 Репутация: нет Всего: 1 |
Доброго времени суток!
Есть такое консольное приложение, оно ищет в процессе int и в результате выдает адреса найденных совпадений:
Но при тестировании приложения, оно выдает немного разное количество найденных чисел чем ArtMoney. Например: я ищу в программе "Калькулятор плюс" число 45, в результате ArtMoney нашло 7 адресов с числом 45, а єта программа 12 с числом 45. Почему такие результаты? мне кажется программа проверяет больше диапазонов адресов чем ArtMoney, или у меня неправильный алгоритм прохождения по диапазонам или неправильно использую VirtualQueryEx Это сообщение отредактировал(а) Townsmen - 8.6.2012, 09:53 |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Можно попросить список найденных адресов (как программой, так и артмани)? -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
Townsmen |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 20.7.2011 Репутация: нет Всего: 1 |
я проверял адреса, приложение нашло все те самые что артмани и еще 5 адресов. Все зависит от числа которое ищем, в одних случаях все адреса одинаковые. В конце поиска программы выводятся все адреса найденные в консоль. |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Я не просто так спрашиваю. Я хочу убедиться, что адреса выровнены или не выровнены по 4-х байтной границе.
Повторяю просьбу:
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
Townsmen |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 20.7.2011 Репутация: нет Всего: 1 |
||||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Просто показать списки можно?
А то у меня начинает складываться такое чувство, что я Вас прошу выдать военную тайну.... ![]() -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
Townsmen |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 20.7.2011 Репутация: нет Всего: 1 |
можно, просто я неправильно понял что с меня требуется... Сейчас скриншоты сделаю или текстом написать?
Добавлено через 6 минут и 59 секунд ![]() |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Спасибо, так пойдёт!
Увы, на вид всё выравнено (addr % 4 даёт 0). То есть, действительно, находит больше. Было бы неплохо, если бы Вы вывели на печать значение mbi.Type для каждого найденного адреса, возможно, определилась бы какая-нибудь закономерность....
Мне кажется, это имеет смысл проверять, если mbi.State есть MEM_COMMIT. -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
GremlinProg |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
![]() а как так получилось, что одно из попаданий лежит в обеих программах в соседних 4-байтовых ячейках:
версии программы совпадают?
если проверять все адреса процесса, тогда надо сделать исключение по крайней мере для служебных диапазонов: секции и заголовки PE, в них-то искать ничего не надо я так думаю ) Добавлено через 1 минуту и 34 секунды вернее, конечно не сами секции, а заголовки этих секций -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||
|
|||||
Townsmen |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 20.7.2011 Репутация: нет Всего: 1 |
я даже сам незнаю почему так получилось
Если допустить что произошла ошибка в нумерации адресов, то дальше все адреса должны не совпадать, а они совпадают. Получается только 1 адрес не на своем месте чего то.
Надо будет сегодня проверить, жаль что сейчас не могу... вечером напишу результаты. |
||||||
|
|||||||
Townsmen |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 20.7.2011 Репутация: нет Всего: 1 |
Сделал еще вывод mbi.State и mbi.Type но никакой закономерности не вижу, только что mbi.State для всех адресов неизменная. Последний адрес в артмани вообще не совпал
![]() ![]() |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
Ха, ха, может быть конечно... Но прежде чем искать соломинку в "чужом глазу", неплохо бы убрать "брёвна" из "своего глаза"
Простой пример, допустим RegionSize = 256, цикл запишется так: for(t=0; t <= (256/128); ...) т.е for(t=0; t <= 2); ...) т.е цикл будет отработан 3 раза 3*128=384 (напомню, это при размере 256). Выход за пределы, как минимум. Это только самое первое "бревно", валяющеея на поверхности. ![]() Это сообщение отредактировал(а) volatile - 10.6.2012, 01:43 |
|||
|
||||
Townsmen |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 20.7.2011 Репутация: нет Всего: 1 |
Уже исправил, что еще не так? Саме больше на мой взгляд ошибок в этом участке кода:
|
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
Новички почему-то любят писать сложные конструкции, наверно думают что так поступают крутые программеры. Так вот, крутые программеры, такие невменяемые конструкции не пишут. Я например, в силу своей природной тупости, не могу охватить весь этот участок мысленным взором. Зачем переменная цикла прибавляется два раза, в разных местах? Вы как автор программы, можете объясить? |
|||
|
||||
Townsmen |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 20.7.2011 Репутация: нет Всего: 1 |
Эту часть кода я взял с хабрхабра. Но он там был нерабочий и мне пришлось немного его самому переделывать (получается цикл в цикле). Если честно я немного удивлен как этот код работает, он наверное пропускает некоторые участки памяти, но то что нужно найти он находит
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |