Вверх ↑
Этот топик читают: Гость
Ответов: 1043
Рейтинг: 33
#1: 2014-10-22 19:04:15 ЛС | профиль | цитата
Здравствуйте уважаемые коллеги и не только ...(коллеги)
Подскажите, можно ли как нибудь считать RAM выбранного процесса.
Поясню для чего мне сей "геморой"
Недавно стал интересоваться Архитектурой NES (В общем дендя)
Хочу вытаскивать из ромов (игр) , различного рода данные ( например: свой конструктор уровней в Super_Mario_Bros (Шоколатье не понять ) )
Буду рад любой помощи , живодерские методы тоже рассматриваются
карма: 0

0
Ответов: 1343
Рейтинг: 31
#2: 2014-10-22 19:22:29 ЛС | профиль | цитата
ashkalov писал(а):
считать RAM выбранного процесса


ну, RAM это оперативка, а значит тебе надо читать память процесса, а значит на это есть компоненты:
MemPatch
MemoryControl
ProcMemory

есть ещё варианты с экспортами виндовых функций из DLL (то есть за собой не надо таскать код который уже и так есть в системе )

есть ещё компонентик для пакета C#
карма: 2

1
Голосовали:ashkalov
Ответов: 1043
Рейтинг: 33
#3: 2014-10-22 19:34:38 ЛС | профиль | цитата
А можно на C# посмотреть) а то я как раз с ним и работаю) но нашел только функцию c++ ( с виндовс API я не дружу )
карма: 0

0
файлы: 1139340887552.jpg [43.9KB] [170]
Ответов: 1343
Рейтинг: 31
#4: 2014-10-22 19:45:53 ЛС | профиль | цитата
Лови MemoryHack

пример MemoryHack
Add(EntryPoint,2953706,154,147)
{
Width=326
Height=190
Point(doText)
link(onError,14432100:doShow,[])
}
Add(MemoryHack,13732908,98,147)
{
link(onReadByte,8855946:doWork2,[])
link(onResult,8855946:doWork3,[(144,160)])
link(ProcessName,16419579:Text,[])
link(Offset,14209586:.IntPtr,[(111,132)(139,132)])
link(Value,14356740:Result,[(118,138)(181,138)])
}
Add(Button,4424160,21,140)
{
Left=75
Top=120
Text="Read"
Point(onClick)
link(onClick,7656824:doEvent1,[])
}
Add(TextBox,16419579,98,49)
{
Left=115
Top=40
Text="HiAsm"
Lines=[]
Point(doText)
Point(Text)
Point(data)
}
Add(MessageBox,14432100,196,154)
{
}
Add(IntPtr,14209586,133,91)
{
Constructor=2
Point(value32)
Point(doConstructor)
link(value32,1884940:Value,[])
}
Add(NumericUpDown,1884940,140,49)
{
Left=115
Top=65
Width=100
Maximum="100000000"
}
Add(Hub,7656824,63,140)
{
link(onEvent1,14209586:doConstructor,[(91,146)(91,104)])
link(onEvent2,13732908:doReadByte,[])
}
Add(Button,10500620,21,175)
{
Left=180
Top=120
Text="Write"
Point(onClick)
link(onClick,13732908:doWriteByte,[(84,181)(84,160)])
}
Add(HubEx,8855946,140,147)
{
link(onEvent,2953706:doText,[])
}
Add(NumericUpDown,12381363,175,49)
{
Left=115
Top=90
Width=100
Text="255"
Maximum="255"
Value="255"
}
Add(Convertor,14356740,175,91)
{
Mode=0
link(Data,12381363:Value,[])
}
Add(Label,5980598,98,7)
{
Left=15
Top=45
Width=95
Text="Process name:"
TextAlign=2
Point(doText)
Point(onClick)
}
Add(Label,13936408,140,7)
{
Left=15
Top=70
Width=95
Text="Offset:"
TextAlign=2
Point(doText)
Point(onClick)
}
Add(Label,6023136,175,7)
{
Left=15
Top=95
Width=95
Text="Byte to write:"
TextAlign=2
Point(doText)
Point(onClick)

ashkalov писал(а):
с виндовс API я не дружу


ну, дружить не обязательно, но ладить надо
вот ещё такая штука есть, правда это уже будет как плагин, но вдруг понравится MemoryTools такую штуку можно прикрутить думаю ко всем пакетам виндовым
карма: 2

0
4
Сообщение
...
Прикрепленные файлы
(файлы не залиты)