- 注册时间
- 2011-3-6
- 最后登录
- 1970-1-1
该用户从未签到
|
首先用一个对话框的按键,用HOOK注入DLL,并在DLL里弹出辅助界面(也是一对话框),用指针来读取内存,设置一个TIMER,并显示在对话框的编辑框里. 有些问题要请教一下,
1. 为什么钩子函数中只有用特定的消息调用LoadLibrary(DLL)才能用使这个DLL与游戏相关,不用LoadLibrary(DLL),无法读取游戏的内存,读到的是可能是有按键的对话框的内存.
2. 不知道把功能函数写在哪里,是写在DLL的对话框类里,还是写在DLL全局变量里,通过什么方式来调用这些功能函数.比如设定血小于100就加血,这个加血的动作写在哪里,是写在对话框的ONTIME里,还是在在钩子函数里取到特定消息后设置一个TIMER,在TIMER参数里写一个PROC,进行判断, 然后加血.
3.在DLL里的对话框用NEW内存再CREATE时候,关闭外面启动对话框,游戏就出错,直接创建非模态对话框关闭时就没有问题.
4.无论用SendMessage还是PostMessage,都无法实现加血功能,用那个Keybd_event只能在游戏为当前窗口时才能用,也试过设置活动窗口,设置SetWindowPos,SetForegroundWindow,还是无法实现后台加血.
请大侠给个思路,DLL里功能函数写在哪,是不是一定要经过消息钩子获得特定的消息调用这些功能函数才能使这些函数起作用??? |
|