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

来源:互联网 发布:ggplot2 python 编辑:程序博客网 时间:2024/04/20 06:49

首先,创建一个工程  

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 文件放在释放资源工程下




运行结果



以上来源于网络


源码下载

0 0