2 / 2 / 1
Регистрация: 26.10.2010
Сообщений: 19
|
|
1 | |
Карта процессов как в ArtMoney09.01.2011, 16:03. Показов 11301. Ответов 20
Метки нет (Все метки)
Наверное много людей пользовались подобным обманщиком игр ...
Инетересно какими методами можно "выудить" такую инфу для построения подобной таблицы? Пробовал из пространства имён System.Diagnostics класс Process, но там только общие данные о процессе, а свойство Process.Modules не даёт модули которые были загруженны этим процессом. В общем в голове пока каша и что-то в поисковике толком не могу найти намёки в какую сторону двигаться. Плюс там ещё есть возможность определять закриптованные загруженные библиотеки.
1
|
09.01.2011, 16:03 | |
Ответы с готовыми решениями:
20
Как реализовать поиск в памяти процессов подобно функционалу ArtMoney и Cheat Engine? SD-карта. Как снять блокировку, если карта не блокировалась Программа в Delphi 7 и Cheat Engine, Artmoney Написание сканера памяти наподобие Cheat Engine или ArtMoney |
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
|
|
09.01.2011, 17:18 | 2 |
Забудь про пространства имен, это как минимум чистейший WinApi, а может и еще чего похуже вроде ассемблера
Хотя и не совсем понятно что подразумевается под "такой инфой"...на рисунке ее много разной
0
|
Почетный модератор
|
|
09.01.2011, 17:35 | 3 |
X-rayboy, без серьезного знания API, а именно работы с процессами и памятью ты ничего не напишешь. Могу дать направление: VirtualQueryEx - это необходимый минимум.
Если тебе не кипит, то возможно на следующей неделе попробую накидать пример, но ничего не обещаю... p.s. Тема перемещена в раздел C#.NET, т.к. совершенно не относится к начинающим.
1
|
2 / 2 / 1
Регистрация: 26.10.2010
Сообщений: 19
|
|||||||||||
10.01.2011, 14:36 [ТС] | 4 | ||||||||||
На изображении изображено какие страницы памяти и сколько выделено, и кому, какой доступ к памяти в этих страницах ... в принципе если можно зацепить с помощью WinAPI для минимума хотя бы это, а там, возможно, будет видно больше информации о процессе.
Хочу написать программу для контроля процесса, его модификации ... что-то типа своего обманщика, но более узко специализированного на определённый процесс. Основное направление сбор статистики по определённым параметрам. Добавлено через 44 минуты Спасибо что дали направление ... покапавшись в инете нашёл вот что ... Работает как в ArtMoney
Обязательно "расширим и углубим" понимание кода ... Добавлено через 19 часов 48 минут Определение состояния адресного пространства процесса (Карта процесса (Исследование виртуальной памяти))
Компиляция производится при разрешении небезопасного кода.
0
|
Почетный модератор
|
||||||
10.01.2011, 14:54 | 5 | |||||
Без unsafe:
0
|
2 / 2 / 1
Регистрация: 26.10.2010
Сообщений: 19
|
|
10.01.2011, 15:54 [ТС] | 6 |
Сообщение было отмечено XIST как решение
Решение
Почему long ptr1Count = 0x00000000;?
Насколько я информирован, то: - когда запускается приложение, система резервирует все адресное пространство пользовательского режима, начиная с 0x0000000 до 0x80000000, что обеспечивает выделение памяти исключительно в нижних 2 Гб. -От 0x00000000 до 0x0000FFFF для выявления нулевых указателей и оно закрыто для доступа. -От 0x00010000 до 0x7FFEFFFF для кода и данных пользовательского режима. -От 0x7FFF0000 до 0x7FFFFFFF этот раздел заблокирован, чтобы упростить внутреннюю реализацию операционной системы. Стоит ли сканировать с 0x00000000, если можно сразу забить 0x00010000?
0
|
2 / 2 / 1
Регистрация: 26.10.2010
Сообщений: 19
|
||||||
11.01.2011, 00:18 [ТС] | 8 | |||||
Определение директории процесса и его модулей:
В разных источниках смотрел и много кусков примеров видел, но у самого что-то не получается заставить работать
0
|
Почетный модератор
|
||||||||||||||||
11.01.2011, 01:26 | 9 | |||||||||||||||
Во, делать было нечего
Без define'ов
1
|
2 / 2 / 1
Регистрация: 26.10.2010
Сообщений: 19
|
||||||
11.01.2011, 19:53 [ТС] | 10 | |||||
SSTREGG, я заметл, что код выкладываемый Вами имеет разный тип по безопасности.
Когда я выкладывал код с небезопасным кодом, то Вы выложили в безопасном. После использовали макрос, а потом без макроса, то выбрали код с небезопасным кодом. Я, следуя по макросу, выбрал ветку с безопасным кодом. Может это само собой так получилось, а может просто для практики, но почему Вы выбрали с небезопасным кодом? Хочется услышать некий опыт по этому поводу. Вот мой исправленный код, по вашей безопасной ветке, может есть косяки, то я с радостью их "выслушаю", чтобы усовершенствоваться :)
0
|
Почетный модератор
|
|
11.01.2011, 20:04 | 11 |
X-rayboy, я сначала пишу unsafe, т.к. при переводе прототипов с MSDN мне так легче\удобней, а потом при желании переделываю под managed.
В некоторых случаях мне удобней сразу писать с использованием unsafe, т.к. кода будет написано меньше (например когда приходится работать со структурами), да и иногда с unsafe немного быстрее выходит и код становится более воспринимаемым (имхо). з.ы. Я не зря выбрал EnumProcessModules, т.к. EnumProcessModulesEx введена только в Vista и выше (по словам MS). Ну это не заголовок ) это адрес по которому расположен модуль.
0
|
2 / 2 / 1
Регистрация: 26.10.2010
Сообщений: 19
|
|
11.01.2011, 22:48 [ТС] | 12 |
ArtMoney как то определяет некоторые модули, которые нельзя выявить простым рассмотренным выше способом.
Регионы, конечно, находятся и их тип Image (образ), но программа ArtMoney "видит" нахождение этого модуля типа "\Device\TrueCryptVolume< буква диска >\<директория с именем модуля> " (Смотрите фото). Может кто знает как это сделать? Для начала направление хотелось бы знать.
0
|
2 / 2 / 1
Регистрация: 26.10.2010
Сообщений: 19
|
|
11.01.2011, 23:04 [ТС] | 14 |
Фото в первом посте
З.Ы. Если компилить и запускать как x64 приложение, то, если сканировать x32 приложение, в основном видны только сам процесс и WoW64 (это подсистема операционной системы Windows, позволяющая запускать 32-битные приложения на всех 64-битных версиях Windows). Наверное получается, что если для x64, как и для x32, нет возможности посмотреть "внутренности" приложения другой битности, то для каждобитного процесса требуется тойжебитности сканер или можно обойтись меньшей "кровью"?
0
|
Почетный модератор
|
||||||
11.01.2011, 23:17 | 15 | |||||
Ну так это совсем не то. ArtMoney показывает файлы которые отображены в данном регионе памяти по данному адресу. Вот твой переделанный пример:
0
|
2 / 2 / 1
Регистрация: 26.10.2010
Сообщений: 19
|
|
14.01.2011, 20:54 [ТС] | 16 |
Исследование виртуальной памяти оказалось недостаточно. Искомая информация находится за пределами пользовательского режима.
Не уж то потребуется вникать в ZwXxx Routines функции для исследования адресов в памяти ядра(0x80000000 - 0xFFFDF000)? ArtMoney как раз сканит до 0xFFFDF000 ...
0
|
Почетный модератор
|
|
14.01.2011, 22:50 | 17 |
X-rayboy, ArtMoney использует только эти функции из ntdll:
Добавлено через 1 час 34 минуты И кстати, ArtMoney сканит только до 0xBFFFFFFF, не больше И Native API к этому никакого отношения не имеют. з.ы. Перенес тему в WinApi.
0
|
2 / 2 / 1
Регистрация: 26.10.2010
Сообщений: 19
|
|
15.01.2011, 02:54 [ТС] | 18 |
Как я понимаю всё таки зависит от процесса ... или глюки ArtMoney, но я своей программой не могу найти те значения, которые она находит в адресном пространстве ядра(по "словам" ArtMoney). Может это в данных созданных каким-то драйвером или ещё что.
Таблица результатов поиска ArtMoney Карта процесса ArtMoney: Как видно из карты процесса значение адреса состоит из 11 разрядов. Бывает самое прикольное что адрес в конце достигает до 7FFF....000(11 разрядов). У меня физической памяти всего 4 ГБ. Собственноручная прога сканит как положено, в пределах виртуального пространства, и находит значения как и в ArtMoney, но только 0x0002CC72470, 0x0002CC724F0 (картинка результатов). А 0x000F00D0D44, 0x000F00D0D7C конечно моя прога не найдёт. Как быть и что делать? Начал копаться в Zw... функциях, но инфы мало, даже у мелкософта. Тем более в x32 и в x 64 возврат у функций разный по структуре. Как прыгнуть в адресное пространство больше 0x80000000 обычным способом не знаю и возможно ли?
0
|
2 / 2 / 1
Регистрация: 26.10.2010
Сообщений: 19
|
||||||||||||||||
15.01.2011, 18:42 [ТС] | 19 | |||||||||||||||
и ещё ... если работать в режимах, позволяющих работать в адресах выше 0x80000000, то использование структуры типа
Даже изменяя на тип UIntPtr функция с 0x7FFFFFFF "сбрасывает" на 0x00010000 Добавлено через 1 час 47 минут Или ArtMoney "вытягивает" адреса из других процессов, "складывая" к этому же процессу, но регионы распологает как стек регионов сверху вниз эмитируя как будто у процесса доступно от 0x00010000 до 0xFFFFFFFF. Добавлено через 23 минуты Наверное получается требуется найти связи между процессом, где ищем, с другими процессами чтобы "выйти из процесса" и сканировать связанные данные в других процессах. Добавлено через 1 час 33 минуты Лобовой перебор всех процессов запущеных на компьютере и поиск в них требуемой информации ни к чему не привёл.
0
|
Почетный модератор
|
|
15.01.2011, 19:01 | 20 |
X-rayboy, ты углубляешься в дебри. Всё проще. Если ты разбираешься в ASM и C++, и знаешь хоть примерно как работать с дизассемблером (IDA например) я могу прислать распакованный exe ArtMoney для изучения.
Если надо пиши в ЛС. Сейчас у самого нет времени заниматься изучением данной проблемы, так бы помог чем-нибудь.
0
|
15.01.2011, 19:01 | |
15.01.2011, 19:01 | |
Помогаю со студенческими работами здесь
20
Правда ли, что в материнской плате уже встроена звуковая карта и сетевая карта? Найти среди выполняющихся процессов имена процессов, имеющих одинаковые ProductVersion Нахождение среди выполняющихся процессов имён процессов с наименьшим значением BasePriority Раз - карта, два - карта. Много карт Нахождение среди выполняющихся процессов имён 3-х процессов, использовавших более всего процессорного времени Завершение всех запущенных процессов из находящегося в текстовом файле списка запрещенных к запуску процессов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |