自己写了一个游戏工具,一直运行的很好,但这次游戏更新后,
存放怪物列表动态地址的基地址不再使用全局变量,而是使用了一个线程局部变量存放,游戏内可以访问,但只能通过fs寄存器,象这样:
mov ecx, large fs:2Ch
mov edx, TlsIndex
mov eax, [ecx+edx*4]
mov edi, [eax+8]
edi里面存放的就是基地址现在想在游戏外部得到edi这个基地址的值,怎么写代码才能搞定啊
有哪位xdjm懂得怎么做啊,请不吝赐教
多谢多谢
存放怪物列表动态地址的基地址不再使用全局变量,而是使用了一个线程局部变量存放,游戏内可以访问,但只能通过fs寄存器,象这样:
mov ecx, large fs:2Ch
mov edx, TlsIndex
mov eax, [ecx+edx*4]
mov edi, [eax+8]
edi里面存放的就是基地址现在想在游戏外部得到edi这个基地址的值,怎么写代码才能搞定啊
有哪位xdjm懂得怎么做啊,请不吝赐教
多谢多谢
解决方案 »
- 一个8字节的LONGLONG即__int64型如何合并为一个__int64
- vc6.0如何做这样的界面
- MFC appwizard实现动态 vc6.0下
- casyncsocket类为什么只能用在shared library中的debug版本下 , 在release版本下或者在static library中为什么都不行
- 在mfc中一个C1.cpp文件怎么访问C2.cpp的函数
- 向Rebar中添加Toolbar和Combobox,二者总是重合,奇怪
- 在static控件中显示图形
- 保存图像时,怎样使下一次保存时默认的是上次打开的保存路径?
- 一个小问题
- 求限制一个注册帐号方法?
- 我只用到很大一个静态连接库中的一点点内容,请问exe连接的时候是连接全部还是一点点?
- 如何让在对话框中创建的视图接收消息
顺便问一下,我使用的是VC++6.0,我想了解我的工作平台的汇编语言,请问有什么专门的书籍可以参考法。谢谢楼主借的沙发:)
如果全汇编的话,去看看罗云彬的 win32汇编程序设计
方法如下:
HANDLE hThread =
OpenThread(THREAD_GET_CONTEXT|THREAD_QUERY_INFORMATION | PROCESS_VM_OPERATION|PROCESS_VM_READ,FALSE, threadID);
if (NULL != hThread)
{
CONTEXT context = {0};
LDT_ENTRY sel;
DWORD read,teb,tls; context.ContextFlags=CONTEXT_ALL;
GetThreadContext(hThread,&context);
GetThreadSelectorEntry(hThread,context.SegFs,&sel);
teb = sel.BaseLow
|(sel.HighWord.Bytes.BaseMid<<16)
|(sel.HighWord.Bytes.BaseHi<<24); ReadProcessMemory(hProcess,(LPCVOID)(teb + 0x2c),&tls,sizeof(DWORD),&read);
//TLS里就是线程的局部存贮地址
::CloseHandle(hWowMainThread);
} 结贴