|
[求助]为何我HOOK其他程序的MessageBox老崩?
多谢老大提点。。。应该就是那个问题。。地址空间应该放在目标程序内。 |
|
[求助]为何我HOOK其他程序的MessageBox老崩?
哪位高人稍微指点下原理?? |
|
[求助]为何我HOOK其他程序的MessageBox老崩?
我贴下完整的代码吧。。 目标程序代码如下 如果执行BUTTON3 则可以成功HOOK掉Button1,但是如果用其他程序就不行。 void Cdlg1Dlg::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码 ::MessageBoxW(NULL, _T("I am dlg1"), _T("hello"), 0); } PROC g_orgProc = (PROC)MessageBoxW; typedef int (WINAPI *PFNMESSAGEBOX)(HWND, LPCWSTR, LPCWSTR, UINT uType); int WINAPI MyMessageBox(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType) { return ((PFNMESSAGEBOX)g_orgProc)(hWnd, _T("New func dlg1"), _T("HookDemo dlg1"), uType); } void ShowError() { DWORD dwError = GetLastError(); LPVOID lpMsgBuf; BOOL fOk = FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER, NULL, dwError, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), (LPTSTR) &lpMsgBuf, 0, NULL); MessageBox( NULL, (LPCTSTR)lpMsgBuf, _T("Error"), MB_OK | MB_ICONINFORMATION ); LocalFree( lpMsgBuf ); } void Cdlg1Dlg::OnBnClickedButton3() { DWORD *lpAddr ; lpAddr =(DWORD *) 0x00421BD0; DWORD dwOldProtect; VirtualProtect(lpAddr, sizeof(DWORD), PAGE_READWRITE, &dwOldProtect); DWORD* lpNewProc = (DWORD*)MyMessageBox; if(::WriteProcessMemory(::GetCurrentProcess(), lpAddr, &lpNewProc, sizeof(DWORD), NULL)) { } else { ShowError(); } VirtualProtect(lpAddr, sizeof(DWORD), dwOldProtect, 0); } HOOK程序代码如下。 hMyHandle = GetSpecialWindow(_T("dlg1"));//此函数获取目标程序句柄,(确保正确的) ShowError(); DWORD *lpAddr ; lpAddr =(DWORD *) 0x00421BD0; DWORD dwOldProtect; VirtualProtectEx(hMyHandle,lpAddr, sizeof(DWORD), PAGE_READWRITE, &dwOldProtect); DWORD* lpNewProc = (DWORD*)MyMessageBox; if(::WriteProcessMemory(hMyHandle, (LPVOID)lpAddr, &lpNewProc, sizeof(DWORD), NULL)) { cout<<"WriteProcessMemory ok"<<endl; } else { ShowError(); } VirtualProtectEx(hMyHandle,lpAddr, sizeof(DWORD), dwOldProtect, 0); cout<<"Set Hook Over"<<endl; 但是此时再按BUTTON1就崩掉啦!!!! |
|
[求助]为何我HOOK其他程序的MessageBox老崩?
刚发现个BUG,,我再调下看看。。 |
|
|
|
[求助]为何我HOOK其他程序的MessageBox老崩?
还是我的理解有问题???HOOK程序自身倒是可以的。(这似乎意义不大) 为什么HOOK另外一个程序就崩溃掉了呢??代码几乎完全一样啊!!!请高手指点下。。或者是我哪里理解不对?? 解决这问题后就放全部代码 |
|
|
|
[原创]自己写的VS对战平台盗号小程序,高手就不用看了~
我大概看了下。。还是这句话最经典。。 因为你没放全部代码,所以如果对方水平没你高,大概是没办法看懂的,,如果只是看思路。。 如果GetdlgItemText都可以直接得到密码了。。那估计是没个高手会看的。 |
|
[求助]OllyDBG 中的函数参考 到底如何下WriteProcessMemory函数断点
恩。。。老大。这个问题我终于解决啦。 |
|
[求助]OllyDBG 中的函数参考 到底如何下WriteProcessMemory函数断点
还有一个问题。。bp WriteProcessMemory之后会自动跳转到该函数调用的地方。 比如我的电脑 7C80220F > 8BFF MOV EDI,EDI 但是在函数调用之前,参数已经入栈,如果我程序断在这里。。在OD中如何查看栈中信息。或者说就是得到参数吧。。有啥简单按键不??? PS。。能不能在所有调用WriteProcessMemory的地方下断? |
|
[求助]OllyDBG 中的函数参考 到底如何下WriteProcessMemory函数断点
7楼老大。。万分感谢。 |
|
[求助]OllyDBG 中的函数参考 到底如何下WriteProcessMemory函数断点
谢谢老大。。。。你的一句话,至少顶我网上查2个小时 |
|
[求助]OllyDBG 中的函数参考 到底如何下WriteProcessMemory函数断点
最主要这东西还不能调驱动。。很不想学。。。哎。。。 |
|
[求助]OllyDBG 中的函数参考 到底如何下WriteProcessMemory函数断点
bp WriteProcessMemory 在OD里面怎么操作。。。。上帝啊!!OD怎么这么难用啊!!最糟糕的是快捷键居然和VS 2005不一致。。 老想按F5 |
|
[求助]OllyDBG 中的函数参考 到底如何下WriteProcessMemory函数断点
大概知道了。这程序是VB写的。。。似乎VB不能WriteProcessMemory 于是就loadlibrary kernel32然后得到函数地址来用。。所以这样似乎跟不到。。 |
|
[求助]Cheate Engine 无法使用和锁定内存地址。
奥。我还以为暴雪的东西都是裸奔的呢!!!知道了。等会研究下。 |
|
[求助]Cheate Engine 无法使用和锁定内存地址。
错误提示是“打开进程错误” 那个英文版是直接崩掉。 |
|
[求助]前一段时间看了关于qq2008的登陆,和聊天消息的文章,学着分析了一下,然后尝试分析2009,但是遇到了很大的问题
恩。我对解包兴趣也不大。。。。就像不是很喜欢脱壳一样。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值