加密/解密引擎

时间:2010-11-14 10:01:49

标签: linux assembly

我开始编写一个简单的加密/解密引擎,作为我学校更大项目的一个启动。我使用程序集对其进行编程,直到现在的逻辑如下:我对命令行中的参数进行一些解析以获取输入文件名和输出文件名,然后我将输入文件读入内部缓冲区,我生成一个伪 - 用于加密缓冲区的随机字节,然后我将尝试在缓冲区的开头添加解密例程的存根,然后将新缓冲区保存到将要创建的输出文件中。这是正确的方法吗?我问,因为当我将输入文件读入缓冲区时,我有疑虑。我想我读了整个文件,而我应该只读它的代码部分?我不确定是否欢迎任何建议/更正。我正在使用32位Linux和汇编。

1 个答案:

答案 0 :(得分:1)

  

添加解密例程,然后将新缓冲区保存到输出文件

可能你错了。如果你想改变代码大小,你也必须使用ELF程序/节表。您可以编写一个程序,它将读取ELF标题并将$ DECRYPTION_ROUTINE_SIZE添加到.text部分的大小,执行一些副本等。 希望它有用:http://www.skyfree.org/linux/references/ELF_Format.pdf

您可以将解密例程附加到.text of file,alter header和insert

jmp    original_entry_point