作为研究的一部分,我想开发一个程序来选择一个可执行文件或另一个文件,然后制作一个包含该文件的字节表。因此我可以以十六进制形式显示它。 示例:
到目前为止,只有一切都可以了,我打算修改该文件表的内容(就像修改程序一样),然后使用第二个函数重新编译一切,因为最后我需要第二个可执行文件。主程序将仅用于生成第二个程序。 我正在使用此方法编译该编译:
QString path = "C:/Users/user/Documents/Qt/runPE-Generator/packer.cpp";
char cmd[500];
memset(cmd,0,sizeof (cmd));
strcat(cmd, path.toLocal8Bit());
strcat(cmd, "-o *.o");
if(strcmp(output.toLocal8Bit(),"")==0){
strcat(cmd, "myGoodProg.exe");
}
else {
strcat(cmd,output.toLocal8Bit());
}
system(cmd);
但是,在直接通过Windows控制台进行了许多测试并键入g ++命令之后,我注意到许多与Qt库有关的错误。
我知道,因为此编译是在不同于Qt的环境中完成的,所以编译器不再找到关联的库。因此,我尽了最大的努力尝试减少这些库的使用,但我不再删除库,其余的库对于程序的运行至关重要。
是否存在将Qt库传递给g ++的解决方案?我尝试了-L选项,但没有成功。
通过将Packer和peGenerator分为两个不同的项目,是否可以解决peGenerator中的函数进行的第二次编译的问题? 因此,该打包程序将充当peGenerator中包含的库。
说实话,我的论文涉及一个关于可执行文件操纵的相当敏感的主题。我在网络安全学校里,因此我的论文必须集中在网络方面。我在这里学习的方法是runPE方法。
如果由于我完全理解的原因而无法回答,那么仍然可以有私人线索吗?这个项目只是出于教育目的而进行的,因此,如果我谈论太多,我不想冒险禁止使用该网站。