您的位置:首页 > 编程语言 > Delphi

delphi制作资源文件(二)一个A.exe释放出B.exe 并且修改b.exe变量的值

2016-06-25 23:49 671 查看
首先,创建一个工程  

edit1.txt:=XXXXX



xxxxx  就是我们A.exe程序需要修改的值,写成XXXXX  是便于我们好查找它的位置。

打卡,winhex.exe  查找资源文件 的XXXX 位置



地址在   0004DD8C  转换成10 进制就是318844  (这个很关键,记下来)

在工程目录下创建两个文件,







然后运行bat文件   会生成一个AAA.res

我们开始新建一个工程来释放资源文件

添加一下代码

var

  Form1: TForm1;

 const OFFSET_DUANKOU = 318844;//这个就根据你自己的值来定。

implementation

{$R *.dfm}

{$R AAA.res}

procedure TForm1.Button1Click(Sender: TObject);

var

WriteBuff, ziyuanzhizhen: PChar;

ziyuanweizhi: HRSRC;

ziyuandaxiao, BytesWritten: Longword;

shujuchulijubing: THandle;

shenqingzhizhen: THandle;

duankou:string;

//现在我们开始begin

BEGIN

duankou:=trim(Edit1.Text); //端口为edit4的文字

ziyuanweizhi := FindResource(HInstance, 'AAA', RT_RCDATA); //资源指针为寻找到的资源'fuwuduan'(就是我先说的标识符)

ziyuandaxiao := SizeofResource(HInstance, ziyuanweizhi);//资源大小

shujuchulijubing := LoadResource(HInstance, ziyuanweizhi); //数据处理句炳

ziyuanzhizhen := LockResource(shujuchulijubing);//资源指针

shenqingzhizhen := CreateFile(pchar('test.exe'), GENERIC_WRITE, FILE_SHARE_WRITE, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);

WriteFile(shenqingzhizhen, ziyuanzhizhen^, ziyuandaxiao, BytesWritten, nil);//写文件

Sleep(100);

SetFilePointer(shenqingzhizhen, OFFSET_DUANKOU, nil, FILE_BEGIN);//重定位指针

WriteBuff := PChar(duankou + StringOfChar(#0, 5 - Length(duankou)));//要写的数据

WriteFile(shenqingzhizhen, WriteBuff^, 5, BytesWritten, nil);//再次修改文件

CloseHandle(shenqingzhizhen);//关闭资源

end;



并且将AAA.res 文件放在释放资源工程下



运行结果



以上来源于网络




源码下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  资源文件 delphi