我正在尝试学习逆向工程,使用Minesweeper作为示例应用程序.我在一个简单的WinDbg命令上发现了这篇MSDN文章,它揭示了所有的地雷,但它已经很老了,没有详细解释,也不是我想要的.
我有IDA Pro反汇编程序和WinDbg调试程序,我已经将winmine.exe加载到它们中.在找到代表矿区的数据结构的位置方面,有人能为这些程序中的任何一个提供一些实用技巧吗?
在WinDbg中我可以设置断点,但是我很难想象在什么时候设置断点和什么内存位置.同样,当我在IDA Pro中查看静态代码时,我不知道在哪里开始找到代表矿区的函数或数据结构.
Stackoverflow上是否有任何反向工程师可以指向正确的方向?
在互联网上找到这方面的信息非常困难,因为神奇的单词"GameShark","Action Replay","记忆编辑器"和"记忆训练师"触发了很多BS,所以我想我应该在一些论坛上提问.
我将在本周末推出Nintendo Wii玩具,我很想知道在游戏运行时修改游戏代码的方法.如果Action Replay在Wii上工作而不需要modchip,我相信我可以用一个切碎的Wii做到这一点(一旦我拿到它,我就会用我的Wii模拟).
这里有人知道我能做些什么来"劫持"像GameShark和Action Replay那样的游戏吗?我希望能够在游戏的特定部分设置断点以执行其他逻辑(例如渲染其他内容)并恢复游戏.
如果有人能够给我一个足够抽象的答案以涵盖许多游戏机,那么我可以自己挖掘更多关于这个主题以找到更具体的答案,我将不胜感激,但对Nintendo Wii特有的答案也非常受欢迎.
编辑:
由于没有人回答我的问题,我会尝试更具体一点.
我想热修补我想要劫持的代码地址以使它们提出中断请求可能是要走的路,虽然我不确定(如果你确定我是对还是错,请分享你的知识我们!).
现在,实际问题是如何在游戏启动后执行此"hotpatching"程序.在游戏控制完控制台后,我不知道如何将此程序排队.一旦完成第一个hotpatch,就可以轻松地进一步进入游戏代码,但问题是第一次发生.我真的很喜欢这件事的启蒙.
谢谢.
我有一个我想修改的地址.我有这个过程.我有新的价值.那么现在怎么办?
// My Process
var p = Process.GetProcessesByName("ePSXe").FirstOrDefault();
// Address
var addr = 0x00A66E11;
// Value
var val = 0x63;
Run Code Online (Sandbox Code Playgroud)
如何0x63在另一个进程内存上写入(99)此地址?
有没有用Python内置的好的和易于使用的模块来编辑内存?或者有这样的模块吗?
我正在寻找的是一种附加到进程并从中读取/写入的方法.就像Cheat Engine的工作原理一样.这是一个在C++中如何工作的例子.
假设我想将DLL注入到每250毫秒编辑一次地址A的进程中.我需要使用DllMain,对吧?问题是我不允许在DllMain内等待.所以我必须创建一个线程?或者这不绕过限制?我该怎么做呢?
此外,使用DLL注入使用EXE编辑应用程序的内存有什么好处?
另外,CreateThread中的堆栈大小应该是多少?如果它太小或太大怎么办?我怎么知道我需要多少钱?
我想知道如何从头到尾查找应用程序的有效地址,因为我想知道如何使用内存编辑应用程序(例如记事本)。我是否需要反编译应用程序并查看汇编代码或机器代码。因为我看到人们总是为minesweeper和某些PC视频游戏等应用程序制作mod。
PS I将使用编程语言C#和Win32函数执行内存编辑。
c# ×2
breakpoints ×1
c++ ×1
dll ×1
ida ×1
minesweeper ×1
process ×1
python ×1
python-3.2 ×1
winapi ×1
windbg ×1