gpt4 book ai didi

exe - 如何修改exe文件的入口点?

转载 作者:行者123 更新时间:2023-12-01 20:23:25 26 4
gpt4 key购买 nike

我正在尝试在 windows XP 的 calc.exe 的文本部分末尾添加一条 jmp 指令,我已经添加了它并修改了入口点以从该地址开始并修改了文本部分的虚拟大小所以它可以处理添加的指令,但结果 exe 不起作用。所以我在这里错过了什么吗?
这是我为处理这些事情而编写的 C# 代码:

public static void inject()
{
StreamReader sr = new StreamReader("C:\\calc.EXE");
BinaryReader br = new BinaryReader(sr.BaseStream);

List<byte> bytesList = new List<byte>();
for (long i = 0; i < br.BaseStream.Length; i++)
{
bytesList.Add(br.ReadByte());
}

{
// updating the entry point
bytesList[280] = 176;
bytesList[281] = 42;
bytesList[282] = 1;
bytesList[283] = 0;
}
{
bytesList[496] = 192;
}
{
// second jmp
bytesList.RemoveRange(76464, 5);

byte[] injectedBytes = { 233, 255, 255, 249, 192 };
bytesList.InsertRange(76464, injectedBytes);
}

StreamWriter sw = new StreamWriter("C:\\calc2.EXE");
BinaryWriter bw = new BinaryWriter(sw.BaseStream);
bw.Write(bytesList.ToArray());
bw.Close();
}

并提前感谢

最佳答案

当您更改(在您的情况下为添加/放大)一个部分(在您的情况下为代码部分,也就是所谓的文本部分)时,您还必须告诉 Windows 加载程序通过修改该部分的关联标题来将此附加部分映射到内存中(描述符)。在您的情况下,您似乎没有这样做,并且加载程序不会加载新代码(在您的情况下,它甚至不会加载/启动应用程序)。修改图像文件很酷,但需要时间来掌握。

Portable Executable File Format – A Reverse Engineer View显示它是如何工作的。

关于exe - 如何修改exe文件的入口点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4249344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com