判断文件是否是可执行文件

可执行文件详解 目录 生成可执行文件 可执行文件的结构 可执行文件的ELF Header 可执行文件的section 可执行文件的segment 生成可执行文件 可执行文件也是ELF文件,这里同样从ELF文件的观点分析可执行文件的结构 使用如下两端代码来模拟多个文件生成一个可执行文件的过程 //add.c extern int times; int add(int n1, int n2) { times++; return n1 + n2; } //main.c #inclu. 阅读详情
  判断文件是否是可执行文件其实可以调用API函数GetBinaryType来完成。但是我不想用这个方法,因为还有其他的方法来判断,虽然这样比较麻烦,也不一定特别的准,但是我觉得这可以让我们对文件有所了解。好,let's go!
  在windows操作系统下,可执行文件的第25个字节是0x40,因此可以编写程序来读取文件的第25个字节的内容从而判断文件是否是可执行文件。 这里我编写的程序是用C语言编写的。读取文件的第25个字节我借助于缓冲型I/O系统中的fseek()函数可以完成其读取操作,它可以设置文件位置,调用方法为:int fseek(FILE *fp,long int num_bytes,int origin);其中fp是调用fopen()时所返回的文件指针,num_bytes是一个长整型量,表示由origin位置到当前位置的字节数。具体相关操作,在代码中解释。代码如下:

#include <stdio.h>
main(int argv,char *argc[])
{
    FILE *fp;
    char c;
    /*判断是否输入了要判断的文件名*/
    if(argv!=2)
    {
        printf("usage:%S filename/n",argc[0]);
        exit(1);
    }
    /*判断文件是否可以正确打开*/
    if((fp=fopen(agrc[1],"rb"))==NULL)
    {
        printf("can not file open/n");
        exit(1);
    }
    fseek(fp,24L,1,SEEK_SET);
    /*c语言的第一个字节的从0开始,因此第25个字节应该是24,在24后面加L说明是长整形,这一点十分重要*/
    /*SEET_SET是一个宏名,SEEK_SET的整型量为0,意思是把文件开头当作起点*/
    fread(&c,1,1,fp);
    /*fread()函数把当前的1个字符(即第25个字节的字符)读到了c变量中*/
    if(c==0x40)
        printf("%s is exefile",argv[1]);
    else
        printf("%s is not exefile",argv[1]);
    fclose(fp);
}

好了,代码就是这样了,在Turbo C 2.0下编译是没有问题的。但是经我测试发现一个问题。我用这个文件测试自身,发现提示它是一个不可执行文件,倒!我在测试一下其他用Turbo C 2.0编译出来的exe文件,也提示不是可执行文件。我在else后面加了一条语句,就是printf("%c",c);这样我知道了,用Turbo C 2.0编译出来的exe文件的第25个字节为0x22。但是,我觉得还需要测试一下,找了一个用VC编译的控制台的exe文件,OK!提示是可执行文件。试试98下的/windows/command/目录下的DOS命令看看,提示它们的第25个字节为0x1e,在试试ping和netstat这样的32位的网络命令,提示它们是可执行文件。这样我把最后几行的判断修改了一下。代码如下:

if(c==0x40)
    printf("%s is 32bit exefile/n",argv[1]);
else if(c==0x22||c==0x1e)
    printf("%s is 16bit exefile/n",argv[1]);
else
    printf("%s is not exefile/n",argv[1]);

这样看起来就完美多了。

本人愚件,请过往的高手赐教!

判断所给二叉树是否是红黑树 先总结下知识点。 红黑树就是带有颜色的平衡二叉搜索树加五个特殊属性 1,所有节点只能是红或黑色 2,所有叶子都是黑色,并且不存有效数据(如果你要自己构造一个红黑树,叶子节点设置为null就可以,其实就是你的结构存储完所有有效数据后把当前的叶子节点(这些叶子是存有有效数据的)当成内节点,给他们一个构造一个null的叶子节点) 3,根节点只能是黑色 4,每个红节点必有两个子黑节点,即不能有连 阅读详情

相关推荐

详解如何判断可执行文件为32位或64位

htmltable {th, td {th {pre {简介:32位和64位可执行文件在运行环境和数据处理能力上有显著差异,识别它们对系统管理员、开发者和软件兼容性管理至关重要。本文详细介绍了多种判断方式,包括查看文件扩展名、使用操作系统内置命令(如Linux的file命令、Windows的dumpbin)、借助第三方工具(如CFF Explorer、PE Viewer)、进行二进制头文件分析以及查看编译器配置等方法。

weixin_42575505的博客 1180

如何判断一个文件是否是win32可执行文件

PE格式(Portable Executable)的文件即可移植的执行体,是Win32环境自身所带的执行体文件格式,如exe,dll文件。它的一些特性继承自 Unix 的Coff (common object file format)文件格式。"portable executable"(可移植的执行体)意味着此文件格式是跨win32平台的:即使Windows 运行在非Intel 的CPU 上,任何

phoebeyufish的专栏 2317

c语言检查文件存在可读取可执行权限

c语言检查文件存在可读取可执行权限,主要是对access函数的说明

编程判断输入一个文件是否为可执行文件_C语言编程,快来看看,这七步帮你更好的做好项目...

C语言,大部分同学大一的时候接触的编译语言,也是第一个接触的语言,很多人在学习的时候都会有些迷茫,即使现在已经学得七七八八了,还是在写项目的时候有很多的问题。如果你以前从来没有接触过任何的编程语言,那么你则需要学习一下一个拆分的逻辑思维。当我们想要写一个项目或者软件的时候,我们需要把这个整体拆分为7个步骤,这样也会让你的思路看起来更有条理。 当然啦,这是最完美的状态。然而...

weixin_39596720的博客 711

逆向实战:基于内存态匿名段分析的 DexProtector 检测绕过策略

本文深入探讨了针对DexProtector加固方案的Frida检测绕过策略。通过分析运行时动态加载到匿名内存段的核心检测逻辑,提出了一套基于内存态分析、定位并转储匿名可执行段,进而通过精准Hook与“等式化替换”等技术实现稳定绕过的实战方法。该方法不仅适用于DexProtector,也对采用类似内存隐藏技术的加固方案具有参考价值。

ik678901的博客 513

Simulink/Requirements Toolbox 学习(一):概述

编写、导入、导出需求并使需求正式化;两种创建需求的模块:需求编辑器、需求透视;描述需求的方式:文本、图像和关键字;通过导入和导出需求文件,与第三方需求管理工具(例如 Microsoft Word、Microsoft Excel®、IBM DOORS和 IBM DOORS Next)集成。涉及模块:Requirements Eidtor、Requirements Table等;

855

C++源文件、目标文件和可执行文件

当编写C++程序时,必须将其输入计算机并保存到文件中。一个类似于文字处理程序的文本编辑器被用于该任务。由程序员编写的语句称为源代码,其保存的文件称为源文件。 在将源代码保存到文件之后,就可以开始将其转换为机器语言的过程。在此过程的第一阶段,称为预处理器的程序读取源代码。预处理程序将搜索以#符号开头的特殊行。这些行包含命令或指令,这些命令使预处理器以某种方式修改或处理源代码。 在下一阶段,编译器逐步通过预处理的源代码,将每个源代码指令转换为适当的机器语言指令。此过程将揭示程序中可能出现的任何语法错误。语法..

知识无止境 4917

SECS/GSM 测试工具 SecsExpress 的配置与实战应用

本文详细介绍了半导体设备通讯测试工具SecsExpress的配置与实战应用。作为专业的SECS/GSM协议调试工具,它能模拟Host与设备端进行双向测试,帮助工程师快速部署、验证通讯链路,并高效排查与RMS系统或真实设备间的联调问题,是提升半导体工厂设备集成与维护效率的利器。

yhn456789的博客 298

判断文件是否为可执行程序

bool CFileTransfer::IsExeFile(CString filepath) { // *.exe,*.com,*.sys,*.cab,*.dox,*.dll,*.bat,*.dat, 多媒体格式(*.avi,*.wmv,*.rm,*.mp3,*.mp4...) int l = false; int b = false; HMODULE hMod = ::GetModuleHandle(filepath); if (hMod == NULL) { hMod = ::Lo..

tiandyoin的专栏 698

手把手教你构建轻量级CLIP模型:从理论到实践

本文手把手教你从零构建一个轻量级CLIP模型,深入解析其核心原理——对比学习,并提供完整的代码实践。通过精简的模型架构、数据准备和训练循环实现,帮助读者彻底理解多模态模型如何让图像与文本在共享空间中对齐,为学习更复杂的AI模型打下坚实基础。

weixin_29100927的博客 325

SAP生产订单成本‘还原’实战:从标准成本到实际费用,一步步拆解差异来源(附物料分类账提示)

本文深入解析SAP生产订单成本差异分析的全过程,从标准成本到实际费用的追踪方法,揭示差异根源的六维分析法。特别强调物料分类账(CKMLCP)在成本还原中的关键作用,帮助财务人员精准定位价格差异、用量差异等问题,提升制造业成本管理的效率和准确性。

weixin_28705087的博客 532

编程判断输入一个文件是否为可执行文件_【正点原子FPGA连载】第三章Linux C编程入门-领航者ZYNQ之linux开发指南...

1)实验平台:正点原子领航者ZYNQ开发板2)平台购买地址:https://item.taobao.com/item.htm?&id=6061601087613)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html4)对正点原子FPGA感兴趣的同学可以加群讨论:8767449005)关注正点原子...

weixin_39976153的博客 509

基于图神经网络的社交网络虚假账号检测系统 (Graph-based Fake Account Detection System, GFADS)

FOLLOWSRETWEETSSHAREDCOMMENTSLIKESMENTIONSUseruser_idusernamejoin_datebioavatar_urllocationverifiedis_fakeLOAD CSV这是决定模型性能的关键环节,需结合和。XXedge_indexy新账号缺乏历史数据和丰富关系。全网图可能包含数亿节点和数十亿边,难以直接训练。社交网络是动态变化的,虚假账号策略也在不断进化。获取大规模、高质量的真实/虚假账号标注数据非常困难。

Deng945201314的博客 1481

shell 判断文件是否是可执行文件

测试变量指定的文件是否存在且是可执行文件。如果存在且是可执行文件,则执行该文件,否则通过chmod命令赋予该文件可执行权限。//test.sh #!/bin/bashecho "enter the name:"read filenameif test -x $filename ; then./$filenameelsesudo chmod +x $filenamels -l $file...

weixin_30251587的博客 4055

iqoo11如何获取root权限?

🏆本文收录于专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家!持续更新中,up!up!up!!

**My Coding Family** 5822

2023年全国职业院校技能大赛“信息安全管理与评估”-真题——赛题题目+答案解析

2023年全国职业院校技能大赛“信息安全管理与评估”-真题——赛题题目+答案解析

君逍遥o 6004

Python之判断文件是否存在,判断路径是否是文件,判断文件是否可读

Python之判断文件是否存在,判断路径是否是文件,判断文件是否可读

qq_41845402的博客 714

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

shell实例浅谈之一判断是可执行文件并存在PATH路径中

一、问题       判断一个文件是否是可执行文件,并且判断能否在系统PATH路径中找到。第一种情况:可执行且找到返回0,第二种情况没找到或者不可执行返回1,第三种情况可执行但没找到或没找到返回2。若有需求还可以细分。 二、解决 1、shell脚本 新建checkxfilepath.sh文件,chmod +x checkxfilepath.sh,然后执行。 [cp

mao834099514的博客 2590

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Linux可执行文件

Linux可执行文件及PATH环境变量

荒-于嬉的博客 2万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

shell 判断可执行文件

另外,需要注意的是,以 "/bin/$" 结尾的目录不一定是有效的目录,可能只是从 RPM 包中的文件列表中的一个副本。选项指示 find 命令将找到的每个文件作为参数执行指定的命令,在这个命令中,没有指定任何命令,因此该命令仅查找 $TEMP_DIR 中的可执行文件。接下来,使用 grep 命令仅列出路径中包含 "/bin/" 的文件,并使用 grep -v 命令排除以 "/bin/$" 结尾的文件。这个命令是使用 "find" 命令在指定目录 $TEMP_DIR 中查找所有可执行文件的命令。

jjliwei的博客 1541

判断文件是否是PE文件

判断一个文件的文件属性是不是PE文件:主要思路就是:比较文件的DOS头和NT头的白哦之是不是“MZ”和“PE”,判断文件是不是EXE文件或者DLL文件或者其他的主要思路是:获取文件的文件头的Characteristis字段,根据字段值进行判断 下边贴上源码 #include <stdio.h> #include <Windows.h> int main() { print...

4SecNet团队专栏 1640

判断可执行文件

判断可执行文件//—– (1008FCB0) ——————————————————– bool __cdecl _ValidateImageBase(int a1) { bool result; // al@2 int v2; // ecx@3if ( (_WORD )a1 == 23117 ) // 5A4D 应倒过来看 4d5a,即 MZ { v2 = a1 +

心想事成 1245

Java判断文件是否是图片

方法一:切割文件名,根据后缀来判断是否是图片(这个比较简单,就不做代码展示了) 方法二: 如果是jdk自带的File类型,可以根据如下代码进行逻辑判断处理,如果是spring中 MultipartFile类型,看代码注释,也可以完成逻辑判断。 /** * 判断文件是否是图片 */ private boolean isImage(File file) { ...

ITJAUser的博客 5973

如何通过class判断是否是一个类的子类

有两个类: class Person {} class Man extends Person {} 如果要判断Man对象是否是Person的子类,可以这样: Man man = new Man(); System.out.println(man instanceof Person); // true 现在只知道Man类的class,如何判断它是Person的子类呢,可以用Class的is...

axe的专栏 2万+

Java判断一个文件是否是DICOM文件

DICOM文件头中,包括128个00H字节的文件前言,和4字节(44,49,43,4D)的DICOM文件前缀,即DICM。我们可以通过魔数校验去判断文件是否是DICOM文件。 步骤如下: public class DicomTest { public static void main(String[] args) throws Exception { // 存放DICOM文件12...

杨不休 1645
下一篇: 留言版的灌水
jesters
博客等级 码龄22年 0粉丝 11原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值