聯系我們 - 廣告服務 - 聯系電話:
您的當前位置: > 關注 > > 正文

【反匯編】ce附加紅警3找錢的進程

來源:CSDN 時間:2023-02-10 13:28:39

首先打開ce附加紅警3的進程(注意要選對進程,是ra3_1.12.game)


(資料圖片)

找錢的數值9750

輸入錢的數,點首次掃描

找到7個結果

在游戲內讓錢發生改變

到ce內輸入變化后的錢,點再次掃描

找到3個結果,雙擊添加到下面的框中

雙擊進行更改數值,然后回到游戲內看錢的變化情況,確定哪個才是真正的地址

發現04DF0AC4才是真正的地址.刪除錯誤的地址,對真的地址進行追蹤

右鍵地址選擇”找出是什么改寫了這個地址”,會要求附加調試器,選擇是

再次回到游戲中,改變錢的數量,然后跳出來發現有了結果

往下察看,esi的值為04DF0AC0,第一個偏移4也出來了

記住偏移和值,接著開始搜索這個值,找到一個結果

把結果加到下面的框中右鍵選擇”找出是什么前往了這個地址”

得到一個結果

有人就開始疑惑,這個的偏移是多少呢?接下來要怎么找呢? 先點擊”顯示反匯編程序” 往上退3行,有句xor eax,eax的指令,這是異或判斷,如果eax=eax,結果就為0 EAX的值是結果是從ECX+EAX*4得來的,EAX=0,所以實際上句子是 mov eax,[ecx+0*4] 所以接下來我們要查找的地址是ECX=03B656C0,這里的偏移就是0

繼續追蹤

發現兩個結果

選擇sub那個結果 下一個要找到的地址是ECX=030FC320這里的偏移就是E4 接下來找出來的結果就有點多了,我們只能一個個找先

首先排除紅色的,然后第一個和第四個沒有結果,我們追到第5個 結果依然很多。。。。

但是我們發現,結果不外乎2個,一個是自己,那么另一個就是正確的值了 EAX=03B86878,偏移是28

接下來找到了一個綠色的值,那么這個就是基地址了,我們來驗證一下

我們關閉游戲重開,重新附加,點“手工加入地址”,鉤上指針,填寫上綠色的地址,以我們找到的基地址反序添加

修改數值,發現游戲中的錢被修改了

這下地址和偏移都找到了,我們開始寫程序吧

#include#includeint main (void){char input;HWND hWnd;DWORD pid;HANDLE hProcess=0;//錢的基地址和偏移DWORD ba_addr=0x00CE8C9C;//基地址DWORD m_offset1=0x28;//偏移1DWORD m_offset2=0xE4;//偏移2DWORD m_offset3=0x0;//偏移3DWORD m_offset4=0x4;//偏移4//電的偏移(錢與電基地址相同)DWORD p_offset1=0x28;//偏移1DWORD p_offset2=0x74;//偏移2DWORD p_offset3=0x4;//偏移3while(1){printf("------------------------------------------\n");printf(" O.打開外掛 M.修改金錢 \n");printf(" P.修改電量 E.退出外掛 \n");printf("------------------------------------------\n");input=getchar();if(input=="O"||input=="o"){hWnd=FindWindow(NULL,"命令與征服:紅色警戒3");if(hWnd!=0){GetWindowThreadProcessId(hWnd,&pid);hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);//打開進程,取得句柄if(hProcess==0){printf("打開游戲進程失敗\n");}else{printf("打開游戲成功??!\n");}}else{printf("游戲沒有運行!!\n");}}if(input=="M"||input=="m"){if(hProcess==0){printf("請先打開游戲進程");}else{DWORD m_tempadd;DWORD MONEY;printf("請輸入要修改的錢\n");scanf("%d",&MONEY);ReadProcessMemory(hProcess,(LPVOID)ba_addr,&m_tempadd,4,0);ReadProcessMemory(hProcess,(LPVOID)(m_tempadd+m_offset1),&m_tempadd,4,0);ReadProcessMemory(hProcess,(LPVOID)(m_tempadd+m_offset2),&m_tempadd,4,0);ReadProcessMemory(hProcess,(LPVOID)(m_tempadd+m_offset3),&m_tempadd,4,0);//要修改的內存地址是(tempadd+offset4)DWORD res=WriteProcessMemory(hProcess,(LPVOID)(m_tempadd+m_offset4),&MONEY,4,0);if(res==0){printf("修改失敗");}else{printf("修改成功");}}}if(input=="P"||input=="p"){if(hProcess==0){printf("請先打開游戲進程");}else{DWORD p_tempadd;DWORD POWER;printf("請輸入要修改的電量\n");scanf("%d",&POWER);ReadProcessMemory(hProcess,(LPVOID)ba_addr,&p_tempadd,4,0);ReadProcessMemory(hProcess,(LPVOID)(p_tempadd+p_offset1),&p_tempadd,4,0);ReadProcessMemory(hProcess,(LPVOID)(p_tempadd+p_offset2),&p_tempadd,4,0);//要修改的內存地址是(tempadd+p_offset3)DWORD res=WriteProcessMemory(hProcess,(LPVOID)(p_tempadd+p_offset3),&POWER,4,0);if(res==0){printf("修改失敗");}else{printf("修改成功");}}}if(input=="E"||input=="e"){break;}}return 0;}

責任編輯:

標簽:

相關推薦:

精彩放送:

新聞聚焦
Top 岛国精品在线