首页
社区
课程
招聘
[求助][求助]请教高手如何用delphi编写文件补丁??
发表于: 2007-11-23 09:55 4656

[求助][求助]请教高手如何用delphi编写文件补丁??

2007-11-23 09:55
4656
  本人想学着用delphi编写文件补丁。比如,如何把exe中地址为004A748C 处的值75 3D修改为EB 3D??
  论坛里有关于文件补丁的贴子,002K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4m8W2k6r3W2&6i4K6u0W2j5$3!0E0i4K6u0r3j5X3u0K6K9s2c8E0L8q4)9J5c8V1u0n7f1K6k6Q4x3V1k6H3k6h3c8A6P5e0j5#2y4K6q4Q4x3X3g2Z5N6r3#2Q4x3U0k6F1j5Y4y4H3i4K6y4n7i4@1f1@1i4@1u0p5i4K6R3$3i4@1f1$3i4K6V1^5i4@1q4r3i4@1f1%4i4K6V1@1i4@1p5^5i4@1f1$3i4@1t1I4i4K6R3%4i4@1f1%4i4@1u0o6i4K6V1$3i4@1f1^5i4@1q4r3i4@1q4p5i4@1f1^5i4@1p5^5i4K6R3H3i4@1f1#2i4K6R3$3i4K6V1&6i4@1f1%4i4K6W2m8i4K6R3@1i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1$3i4K6R3^5i4K6V1I4i4@1f1$3i4K6V1^5i4@1q4r3i4@1f1^5i4K6S2r3i4K6W2o6i4@1f1&6i4@1t1^5i4K6W2r3i4@1f1%4i4K6W2o6i4K6S2n7i4@1f1@1i4@1t1^5i4K6S2p5i4@1f1$3i4K6R3%4i4K6R3J5i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1#2i4K6S2r3i4@1q4m8i4@1f1$3i4K6R3%4i4K6R3J5i4@1f1%4i4K6W2o6i4K6S2n7k6r3g2D9M7r3S2A6i4K6t1$3L8X3u0K6M7q4)9K6b7R3`.`. 或者delphi高手把它翻译成delphi,期待中……

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
//大概是这样,没测试。
program pathc;

uses windows,messages;

var
  FileName:PChar = 'Crackme5.exe';
  AppName:PChar = 'Crackme 5 Pathc';
  Done:PChar = 'File patched succesfully!';
  NoFile:PChar = 'Can''t find crackme5.exe!';
  ReFile:PChar = 'Wrong version of crackme5.exe!';
  WrFile:PChar = 'Error writing to crackme5.exe!';
  RBuffer:Array[0..1] of Byte = ($75,$15);
  WBuffer:Array[0..1] of Byte = ($90,$90);
  OffsetPos:TOVERLAPPED = (Internal:0;InternalHigh:0;Offset:$53f;OffsetHigh:0;hEvent:0);
  CommandLine:PChar;
  hwndname:HWND;
  hFile:THANDLE;
  Numb:DWORD;
  Buffer:Array[0..1] of Byte;
  nType:DWORD;
  pMsg:PChar;

begin
  hFile := CreateFile(FileName,GENERIC_READ OR GENERIC_WRITE,FILE_SHARE_READ OR FILE_SHARE_WRITE,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
  if hFile <> INVALID_HANDLE_VALUE then
  begin
    ReadFile(hFile,Buffer,2,Numb,@OffsetPos);
    if WORD(Buffer[0]) = Word(RBuffer[0]) then
      if WriteFile(hFile,WBuffer,2,Numb,@OffsetPos) then
      begin
        nType := MB_OK;
        pMsg := Done;
      end
      else
      begin
        nType := MB_OK or MB_ICONINFORMATION;
        pMsg := WrFile;
       end
     else
     begin
       nType := MB_OK or MB_ICONINFORMATION;
       pMsg := ReFile;
     end;
  end
  else
  begin
    nType := MB_OK or MB_ICONINFORMATION;
    pMsg := NoFile;
  end;
  CloseHandle(hFile);
  MessageBox(0,pMsg,AppName,nType);
  ExitProcess(0);
end.
2007-11-23 12:08
0
雪    币: 241
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
非常漂亮的翻译!已经通过测试,谢谢版主!!!
2007-11-29 23:27
0
游客
登录 | 注册 方可回帖
返回