替換內存數據例子
例子.exe 原程序
例子_替換文本.exe 已經用替換文本方式修改過的
例子_替換地址.exe 已經用替換文本地址方式修改過的
按鈕事件地址:004011D4
自定義文本地址:0041259A
===================================華麗的分割線=====================================
替換文本內容代碼
00412551 > \60 pushad ; 保存環境
00412552 . 33C0 xor eax,eax ; 清空eax備用,這裏好像用不到那麼多寄存器
00412554 . 33C9 xor ecx,ecx ; 清空ecx備用,存放欲替換地址
00412556 . 33D2 xor edx,edx ; 清空edx備用,替換位置記位
00412558 . 33DB xor ebx,ebx ; 清空ebx備用,替換內容過渡
0041255A . 8B4D FC mov ecx,dword ptr [ebp-4] ; 獲取欲替換內容地址
0041255D > 8B9A 9A254100 mov ebx,dword ptr [edx+41259A] ; 講替換內容臨時存放ebx,edx=記位,41259A=內容地址
00412563 . 891C11 mov dword ptr [ecx+edx],ebx ; 替換原內容
00412566 . 83FA 08 cmp edx,8 ; 檢查是否替換完
00412569 . 74 05 je short 00412570 ; 完成則恢復環境執行原來代碼
0041256B . 83C2 04 add edx,4 ; 記位+4由於是dword型
0041256E .^ EB ED jmp short 0041255D ; 繼續替換
00412570 > 61 popad ; 下面的你們都懂了
00412571 . 8D45 FC lea eax,dword ptr [ebp-4]
00412574 . 50 push eax
00412575 . 68 8C4A4100 push 00414A8C
0041257A .^ E9 71ECFEFF jmp 004011F0
二進制代碼
60 33 C0 33 C9 33 D2 33 DB 8B 4D FC 8B 9A 9A 25 41 00 89 1C 11 83 FA 08 74 05 83 C2 04 EB ED 61
8D 45 FC 50 68 8C 4A 41 00 E9 71 EC FE FF
===================================華麗的分割線=====================================
替換文本地址代碼00412551 > \60 pushad ; 保存環境00412552 . A1 8A254100 mov eax,dword ptr [41258A] ; 自定義文本指針(即地址)給EAX00412557 . 8945 FC mov dword ptr [ebp-4],eax ; 替換原來文本的地址爲自定義文本的地址0041255A . 61 popad ; 恢復環境0041255B . 8D45 FC lea eax,dword ptr [ebp-4] ; 這些這些都是原來的代碼0041255E . 50 push eax0041255F . 68 8C4A4100 push 00414A8C00412564 .^ E9 87ECFEFF jmp 004011F0二進制代碼60 A1 8A 25 41 00 89 45 FC 61 8D 45 FC 50 68 8C 4A 41 00 E9 87 EC FE FF
歡迎關注本站公眾號,獲取更多信息