資源共享吧|易語言論壇|逆向破解教程|輔助開發(fā)教程|網(wǎng)絡安全教程|www.rigasin.com|我的開發(fā)技術(shù)隨記

標題: C++游戲逆向高級培訓班第11課-hook之后兩次收包之后游戲崩潰 [打印本頁]

作者: bs0303    時間: 2021-5-8 15:14
標題: C++游戲逆向高級培訓班第11課-hook之后兩次收包之后游戲崩潰
只運行hook,注釋掉自己的代碼,可以正常運行,說明hook沒問題。
x32dbg 調(diào)試顯示EXCEPTION_ACCESS_VIOLATION


作者: kaining    時間: 2021-5-8 16:50
有具體截圖嗎
作者: kaining    時間: 2021-5-8 16:51
應該是訪問的問題 指針?
作者: bs0303    時間: 2021-5-8 18:39
本帖最后由 bs0303 于 2021-5-8 18:44 編輯
  1. Hook* hook2;
  2. struct {
  3.         DWORD dwBase;
  4.         DWORD dwLen;
  5.         BYTE* strBuff;
  6.         CString strRecv;
  7.         CString strTempRecv;
  8. }recvPack;

  9. __declspec(naked) void recvHook(){
  10.         __asm pushad
  11.         //自己代碼
  12.         __asm{
  13.                 mov recvPack.dwBase,ebx
  14.                 mov ecx,[edi]
  15.                 mov ecx,[ecx+0x8]
  16.                 mov edx,[edi]
  17.                 mov edx,[edx+0x4]
  18.                 sub ecx,edx
  19.                 add ecx,2
  20.                 mov recvPack.dwLen,ecx
  21.         }
  22.         recvPack.strBuff = new BYTE[recvPack.dwLen];
  23.         ReadProcessMemory((HANDLE)-1,(LPCVOID)recvPack.dwBase,recvPack.strBuff,recvPack.dwLen,NULL);
  24.         for(DWORD i=0; i<recvPack.dwLen; i++){
  25.                 recvPack.strTempRecv.Format(L"%02X ",recvPack.strBuff[i]);
  26.                 recvPack.strRecv+=recvPack.strTempRecv;
  27.         }
  28.         OutputDebug(L"包地址:0X%08X   包長:0X%02X===%08d   包內(nèi)容:%s",recvPack.dwBase,recvPack.dwLen,recvPack.dwLen,recvPack.strRecv);
  29.         delete[] recvPack.strBuff;
  30.         recvPack.strBuff = nullptr;
  31.         recvPack.strRecv = "";

  32.         __asm{
  33.                 popad
  34.                 mov ebp,dword ptr ds:[esi+0x2874]
  35.                 retn
  36.         }
  37. }

  38. void CDLG::OnBnClickedButton10()
  39. {
  40.         // TODO: 在此添加控件通知處理程序代碼
  41.         hook2 = new Hook();
  42.         hook2->onHook((DWORD)0x00B92931,(DWORD)recvHook,(BYTE)0xE8,6);
  43. }


  44. void CDLG::OnBnClickedButton11()
  45. {
  46.         // TODO: 在此添加控件通知處理程序代碼
  47.         hook2->unHook();
  48.         delete hook2;
  49.         hook2 = nullptr;
  50. }
復制代碼


傳的和視頻一樣的ebx




歡迎光臨 資源共享吧|易語言論壇|逆向破解教程|輔助開發(fā)教程|網(wǎng)絡安全教程|www.rigasin.com|我的開發(fā)技術(shù)隨記 (http://www.rigasin.com/) Powered by Discuz! X3.4