怎么让程序去判断可执行文件的执行流区和代码区?

怎么让程序去判断可执行文件的执行流区和代码区?,第1张

1、首先双击可执行文件Demo,告诉 *** 作系统我们要执行可执行文件

2、其次 *** 作系统接受到用户的请求后,就会根据用户提供的文件名,在磁盘上找到可执行文件数团Demo的相关信息。

3、然后找到信息后,会去检查该薯悉橘文件是不是一个可执行文件,检查完后,根据程序的首部信息确定代码和数据在这个可执行文件中的位置,陆盯并计算处它相应的磁盘块地址。

4、最后 *** 作系统会创建一个新的进程,并将可执行文件Demo的格式映射到进程结构即可。

所有的文件都是二进制文件,如果文春尺件的内容都谈握能表示成字符就称为文本文件,文件头用来标识文件大小的,告诉文件在哪个字节处是结尾,文件名不属于文件本身也不属于 *** 作系统,文件是目录的一部分,目录的叶节点表示文件名,内部节扒侍高点表示文件夹

开始切入正题前,让我先解释一下这篇文章的结构。一个很平凡的题目(命名的确是很头疼的问题,以此命名的原因是希望能在搜索引擎提高命中率:D),但却不好回答。当我拿到需求并且与需求方确认后将需求分解为以下2个层次:1.初级需求是函数的返回值是BOOL型,返回True或者False表示是否加壳。2.高级需求是函数的返回值必须能返回表示壳的种类,返回壳ID或者壳名称。关于手动脱壳的分析员来说判断一个PE文芹闭件是否加壳方法太多,而且通常非常容易。但是如果将这些方法一一列举出来后,我发现用程序来模拟这些人工的动作有3个问题:1.大部分方法,实现起来比较复杂。2.有些方法误判率非常高。3.大部分方法,判定的壳种类非常有限。所以本文的正文部分结构上分成二个部分,分别尝试去回答上面的两个问题。第一章解决第1个小问题,其中又分成两个小节使用两种技术来分别实现;第二章解决第2个小问题。希望你能按照顺序阅读全文。在开始旅行前,有一些共识需要强调一下。Pack的英文直译过来应该是“被压缩”的意思。而中文里“壳”的意思更多的是强调“被保护”(“壳”的历史不是这篇文章的重点)这里要说明的是,尽管按照中文的习惯,我更多的使用“加壳”这个词语,但本文试图解决的铅首橘问题--检测槐团一个PE文件是否“被压缩”,而不是是否“被保护”。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12410134.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存