Посл.ответ |
Сообщение |
Ранг: 5.3 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 04 сентября 2006 07:12 · Личное сообщение · #1
Как на Delphi организовать программку которая показывала какие адреса в памяти занимает какая нибудь другая программа. И чтобы с этими адресами можно было работать. Может какие API функции есть?
| Сообщение посчитали полезным: |
|
 Ранг: 61.7 (постоянный) Активность: 0.05↘0 Статус: Участник я
|
Создано: 04 сентября 2006 07:24 · Личное сообщение · #2
не понятно, что ты имеешь ввиду. но если писать и читать память чухого процесса, то -ReadProcessMemory\WriteProcessMemory, а с адресами ты путаешь что-то. или может быть имеешь ввиду физические адреса? что тебе нужно конкретно делать?
| Сообщение посчитали полезным: |
Ранг: 5.3 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 04 сентября 2006 07:32 · Личное сообщение · #3
Ну например ArtMoney когда выбираешь процесс а потом ищешь значение она начинает поиск по адресам.Так вот как ArtMoney узнает какие адреса в памяти принадлежат именно этой игре. ReadProcessMemory\WriteProcessMemory помоему они толькочитают\ипишут в память а как найти адрес?
| Сообщение посчитали полезным: |
 Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 04 сентября 2006 07:35 · Личное сообщение · #4 |
Ранг: 5.3 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 04 сентября 2006 07:37 · Личное сообщение · #5
Спасибо Ща посмотрю
| Сообщение посчитали полезным: |
Ранг: 5.3 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 04 сентября 2006 09:08 · Личное сообщение · #6
А может кто кинет линк где можно почитать про работу с памятью
| Сообщение посчитали полезным: |
 Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 04 сентября 2006 09:13 · Личное сообщение · #7
а что не понятно? в примере всё очень просто!
----- [nice coder and reverser] | Сообщение посчитали полезным: |
Ранг: 5.3 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 04 сентября 2006 09:19 · Личное сообщение · #8
У меня Delphi 2005 (наверно поставлю 7). Там быстро выпрыгивает консоль и сразу закрывается. На 7 так будет?
| Сообщение посчитали полезным: |
 Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 04 сентября 2006 09:24 · Личное сообщение · #9
ах вот в чём дело  дык это консольный пример! параметры передаются через коммандную строку...
перепиши ты его  там реализация просто, не надо же передирать было, а надо было разобратсья!
----- [nice coder and reverser] | Сообщение посчитали полезным: |
Ранг: 5.3 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 04 сентября 2006 09:45 · Личное сообщение · #10
Я ща переделал. Не понятно...
ProcessID := StrToInt('$'+ParamStr(1)); Как это переделать?
Delphi говорит: "$" is not a valid integer value
| Сообщение посчитали полезным: |
 Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 04 сентября 2006 09:49 · Личное сообщение · #11
StrToInt('$'+SomeStr) - это типа функция StrToHex.
вроде должно всё норм быть
----- [nice coder and reverser] | Сообщение посчитали полезным: |
Ранг: 5.3 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 04 сентября 2006 09:51 · Личное сообщение · #12
Это перевод из строки в целое число. Неа дельфи ругается. Может убрать знак вообще? Ща посмотрим.
| Сообщение посчитали полезным: |
 Ранг: 260.9 (наставник) Активность: 0.12↘0 Статус: Участник John Smith
|
Создано: 04 сентября 2006 12:17 · Личное сообщение · #13
sion пишет:
ReadProcessMemory\WriteProcessMemory помоему они толькочитают\ипишут в память а как найти адрес?
Получается, никак. Мля, ну что те сказать. Чё взялся за дело, если не соображаешь как связать чтение данных и поиск.
----- Недостаточно только получить знания:надо найти им приложение | Сообщение посчитали полезным: |
Ранг: 310.8 (мудрец), 29thx Активность: 0.43↘0 Статус: Участник
|
Создано: 05 сентября 2006 03:02 · Личное сообщение · #14
sion пишет:
ProcessID := StrToInt('$'+ParamStr(1)); Как это переделать?
Немножко подумать. В оригинале ProcessID задается первым параметром в строке запуска программы.
Т.к. ты свою прогу запускаешь без параметров, то получается StrToInt('$') - ошибка.
Тебе надо просто присваивать ProcessID и адрес тому, что нужно.
| Сообщение посчитали полезным: |
 Ранг: 793.4 (! !), 568thx Активность: 0.74↘0 Статус: Участник Шаман
|
Создано: 05 сентября 2006 03:13 · Личное сообщение · #15
sion пишет:
Неа дельфи ругается. Может убрать знак вообще?
Купи учебник по Delphi или в электронном виде поищи, это ж элементарно.
ReadProcessMemory долго будет работать, лучше сдампить страницу(ы) и искать через указатель.
----- Yann Tiersen best and do not fuck | Сообщение посчитали полезным: |
Ранг: 9.4 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 05 сентября 2006 04:11 · Личное сообщение · #16
sion пишет:
А может кто кинет линк где можно почитать про работу с памятью
wasm.ru
например
FrostFix - Создание сканера виртуальной памяти процессов (4) (печать) /27.06.05/ Хитов: 564
Предмет повествования состоит в изучении принципов сканирования виртуальной памяти процессов (этим занимаются такие программы как ArtMoney и др.), создании и реализации алгоритма целочисленного "универсального обманщика игр".
FrostFix - Сканер виртуальной памяти «внутри» процесса (2) (печать) /01.07.05/ Хитов: 576
Целью статьи является рассмотрение принципов создания сканера виртуальной памяти, находящегося «внутри» исследуемого процесса.
| Сообщение посчитали полезным: |
 Ранг: 260.9 (наставник) Активность: 0.12↘0 Статус: Участник John Smith
|
Создано: 05 сентября 2006 04:16 · Поправил: Rascal · Личное сообщение · #17
А можно и длл инжектить. Не понадобится память для хранения всей памяти процесса. Ибо искать надо по всему адресному пространтсву для переменных полученных динамически.
----- Недостаточно только получить знания:надо найти им приложение | Сообщение посчитали полезным: |
Ранг: 23.8 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 05 сентября 2006 05:52 · Личное сообщение · #18
Вариант с инжектом DLL действительно неплохой, главное скорость поиска будет очень высокой, только с передачей результатов могут возникнуть проблемы.
А как ArtMoney делает интересно? Ведь скорость поиска у неё очень велика и никаких dll она не инжектит.
| Сообщение посчитали полезным: |
 Ранг: 260.9 (наставник) Активность: 0.12↘0 Статус: Участник John Smith
|
Создано: 05 сентября 2006 06:53 · Личное сообщение · #19
Как раз мани ищет медленно. Потому как не инжектит. А передавать через мьютексы и маппинг. Всё надёжно и без каких-либо проблем
----- Недостаточно только получить знания:надо найти им приложение | Сообщение посчитали полезным: |
Ранг: 23.8 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 06 сентября 2006 00:25 · Личное сообщение · #20
Медленно? Мне всегда казалось это быстро  Наверное потому что сравнить не с чем.
| Сообщение посчитали полезным: |