魔改010Editor Template 识别伪加密
天安杯培训四叶草的大佬讲伪加密时说到“极客压缩”可以进行无视伪加密,直接打开压缩包,还有这么好的工具赶紧下载下来,但是火绒直接报病毒,直接把我劝退。
后来网上看到百度大佬对软件的分析,竹节虫:暗藏在常用工具软件中的后门,这个软件存在Lua脚本机具备下载任意程序并静默执行、结束进程、修改任意注册表、向连接的手机安装APK、修改主页、本地提权等121个功能API,功能强大令人震惊。值得警惕的是,Lua脚本可随时被升级更新,不排除有幕后黑手利用这功能强大的后门执行隐私窃取等其他恶意行为,存在极高的安全隐患。
为了本地的环境的安全可靠,还是另辟蹊径吧,使用010Editor Template进行分析是不是伪加密。
首先什么是伪加密
如上图压缩文件数据区全局方式位标记为0000,而压缩文件目录区全局方式位标记为0900时就可以判断为伪加密。程序中实现也是这样判断。
正常的zip template是执行完只会判断zip文件的完整性,是否被损坏。
修改完的会判断是否是伪加密,如果符合上面的判断条件,就会给个提示
what fake zip!
本来想直接判断出来是伪加密自动把文件里面的字节改掉,但是报了函数错误,换了几个函数都不行,接下来还要学习如何使用脚本更改打开的文件数据。
Function 'WriteBytes' cannot write to the current file in a template. Use a script instead.
今天先把能判断出来是伪加密的脚本贴出来,感谢韦神对我C语言结构体的指导
欢迎关注“鸡术有限”微信公众号
//------------------------------------------------
//--- 010 Editor v2.0 Binary Template
//
// File: ZIP.bt
// Author: SweetScape Software
// Version: 2.3
// Purpose: Parse ZIP archive files.
// Category: Archive
// File Mask: *.zip
// ID Bytes: 50 4B //PK
// History:
// 2.3 2015-07-18 SweetScape: Updated header for repository submission.
// 2.2 S.Gibson: Fix for entry comment field,
// Fix for parsing data descriptors
// 2.1 SweetScape: Added write function for ZIPFILERECORD structure
// 2.0 SweetScape: Added read functions
// 1.0 SweetScape: Initial release
//
// More information available at:
// https://en.wikipedia.org/wiki/Zip_%28file_format%29
//------------------------------------------------// Define structures used in ZIP files//enum used for compression format
typedef enum <short> { COMP_STORED = 0,COMP_SHRUNK = 1,COMP_REDUCED1 = 2,COMP_REDUCED2 = 3,COMP_REDUCED3 = 4,COMP_REDUCED4 = 5,COMP_IMPLODED = 6,COMP_TOKEN = 7,COMP_DEFLATE = 8,COMP_DEFLATE64 = 9
} COMPTYPE;// Defines a file record
typedef struct {// Header for the filechar frSignature[4]; //0x04034b50ushort frVersion;ushort frFlags;COMPTYPE frCompression;DOSTIME frFileTime;DOSDATE frFileDate;uint frCrc <format=hex>;uint frCompressedSize;uint frUncompressedSize;ushort frFileNameLength;ushort frExtraFieldLength;if( frFileNameLength > 0 )char frFileName[ frFileNameLength ];if( frExtraFieldLength > 0 )uchar frExtraField[ frExtraFieldLength ];// Compressed dataSetBackColor( cNone );if( frCompressedSize > 0 )uchar frData[ frCompressedSize ];} ZIPFILERECORD <read=ReadZIPFILERECORD, write=WriteZIPFILERECORD>;// Defines an entry in the directory table
typedef struct {char deSignature[4]; //0x02014b50ushort deVersionMadeBy;ushort deVersionToExtract;ushort deFlags;COMPTYPE deCompression;DOSTIME deFileTime;DOSDATE deFileDate;uint deCrc <format=hex>;uint deCompressedSize;uint deUncompressedSize;ushort deFileNameLength;ushort deExtraFieldLength;ushort deFileCommentLength;ushort deDiskNumberStart;ushort deInternalAttributes;uint deExternalAttributes;uint deHeaderOffset;if( deFileNameLength > 0 )char deFileName[ deFileNameLength ];if( deExtraFieldLength > 0 )uchar deExtraField[ deExtraFieldLength ];if( deFileCommentLength > 0 )uchar deFileComment[ deFileCommentLength ];
} ZIPDIRENTRY <read=ReadZIPDIRENTRY>;// Defines the digital signature
typedef struct {char dsSignature[4]; //0x05054b50ushort dsDataLength;if( dsDataLength > 0 )uchar dsData[ dsDataLength ];
} ZIPDIGITALSIG;// Defintes the Data descriptor
typedef struct {char ddSignature[4]; //0x08074b50uint ddCRC <format=hex>;uint ddCompressedSize;uint ddUncompressedSize;
} ZIPDATADESCR;// Defines the end of central directory locator
typedef struct {char elSignature[4]; //0x06054b50ushort elDiskNumber;ushort elStartDiskNumber;ushort elEntriesOnDisk;ushort elEntriesInDirectory;uint elDirectorySize;uint elDirectoryOffset;ushort elCommentLength;if( elCommentLength > 0 )char elComment[ elCommentLength ];
} ZIPENDLOCATOR;//--------------------------------------------// Custom read functions that allows the name of the
// of the file to appear in the Template Results.string ReadZIPFILERECORD( ZIPFILERECORD &file )
{if( exists( file.frFileName ) )return file.frFileName;elsereturn "";
}string ReadZIPDIRENTRY( ZIPDIRENTRY &entry )
{if( exists( entry.deFileName ) )return entry.deFileName;elsereturn "";
}// Custom write function that allows changing
// the name of the file - note that the file
// name size cannot be increasedvoid WriteZIPFILERECORD( ZIPFILERECORD &file, string s )
{local int len = Strlen( s );if( exists( file.frFileName ) ){Strncpy( file.frFileName, s, file.frFileNameLength );if( len < file.frFileNameLength )file.frFileName[len] = 0; //null terminate }
}//--------------------------------------------// Define the file
local uint tag;
LittleEndian();
local uint tag2;
while( !FEof() )
{// Read a tagtag = ReadUInt( FTell() );// Read data depending upon tag - should start with 'PK'.// Note that when duplicate variables are defined, they// are made into an array (see 'Using Templates and Structs'// in the help file).if( tag == 0x04034b50 ){SetBackColor( cLtGray );ZIPFILERECORD record;tag2=record.frFlags;}else if( tag == 0x08074b50 ){SetBackColor( cLtGreen );ZIPDATADESCR dataDescr;}else if( tag == 0x02014b50 ){ SetBackColor( cLtPurple );ZIPDIRENTRY dirEntry;if(dirEntry.deFlags==0x9 && dirEntry.deFlags != tag2){Printf("what fake zip!\n");}}else if( tag == 0x05054b50){SetBackColor( cLtBlue );ZIPDIGITALSIG digitalSig;}else if( tag == 0x06054b50 ){SetBackColor( cLtYellow );ZIPENDLOCATOR endLocator;}else{Warning( "Unknown ZIP tag encountered. Template stopped." );return -1;}
}
魔改010Editor Template 识别伪加密相关推荐
- winhex改宽高和伪加密
文章目录 前言 winhex 修改高度 png jar 伪加密 前言 我所熟悉winhex用法是两种,一种是修改了高度,另一种是进行了伪加密.我是在做题的时候突然忘了具体咋操作的了,于是就打算写下,方 ...
- BugkuCTF-MISC题zip伪加密
下载文件file.zip 题目提示伪加密 通过010editor打开file伪加密.zip 将头文件标记50 4B 03 04起第三第四个字节改为0000 再将50 4B 01 02起第五第六个字节改 ...
- MD5加密及Python源码魔改
MD5全称:message-digest algorithm 5 翻译过来就是:信息 摘要 算法 5 一.特点 1.长度固定: 不管多长的字符串,加密后长度都是一样长 作用:方便平时信息的统计和管理 ...
- CobaltStrike魔改与增强
文章为匿名投稿,该文章仅限提供思路,具体实现请自行研究使用. 文章内用到的代码源码 详见末尾 由于传播.利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担 ...
- BUUCTF ZIP伪加密
发现压缩包无法解压 方法1(不一定每次都有用):将压缩包直接发送给QQ好友,然后在手机上就能成功查看文件内容了. 方法2: 这种伪加密的题目,直接用010Editor打开下载地址 来了解一下ZIP文件 ...
- zip伪加密做法及原理
总结一下伪加密题的解法,首先伪加密是指对zip文件的标志位进行修改,然后达到加密的效果,实际上并没有加密. 一个 zip 文件由三个部分组成: 压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标 ...
- CTF爬虫:掌握这些特征,一秒识别密文加密方式
关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 文章目录 前言 编码系列 Base 系列编码 Unicode 编码 Escape 编码 URL / Hex 编码 加密算法 MD ...
- CTF-杂项题-伪加密
手动分离压缩包注意: zip压缩包文件头格式为504B0304,之间包含504B0102,文件以504B0506****结尾,注意这类格式. zip伪加密 zip伪加密是在文件头的加密标志位做修改,进 ...
- 从CTF比赛真题中学习压缩包伪加密与图片隐写术
先讲个笑话,刚刚打完MAR DASCTF明御攻防赛,一如往常,很轻松便拿到了两个flag(签到与问卷),哈哈,一个脑细胞都不用消耗 好了下面通过其中的一道misc题,一起学习一下伪加密与图片隐写的破解 ...
- 从CTF比赛真题中学习压缩包伪加密与图片隐写术【文中工具已打包】
先讲个笑话,刚刚打完MAR DASCTF明御攻防赛,一如往常,很轻松便拿到了两个flag(签到与问卷),哈哈,一个脑细胞都不用消耗 好了下面通过其中的一道misc题,一起学习一下伪加密与图片隐写的破解 ...
最新文章
- 常用英文标点符号的使用
- python【蓝桥杯vip练习题库】ALGO-90出现次数最多的整数(sys)
- python全栈-Day 2
- HTML(1)--- HTML5教程
- java8模块化_Java9系列第8篇-Module模块化编程
- 云计算之openstack(N版)neutron网络服务最佳实践
- 如何实现快捷方式中的查找目标功能
- 彩色图像--色彩空间 CMY(K)场地
- 华为NP课程笔记5-中间系统到中间系统实验
- QQ音乐JS逆向爬虫,获取调皮的sign参数,我用python全都爬!
- js防止双击事件触发单击事件
- STM8S单片机入门(前言)
- 工商管理学python_工商管理专业以数据分析师为目标怎么样?
- html 给表格添加背景,HTML中新建表格怎么加背景
- p3110 二叉堆练习3--排序
- ubuntu 18.04 安装NFS 共享文件夹,Linux挂载,Mac 挂载
- 【dev Cpp新手请进】dev导入ege图形库
- Python 转换圆形、五边形、六边形、八边形PNG图片
- r语言报错|Error in plot.window(...) : ‘xlim‘值不能是无限的
- 程序员请尊重前辈的代码
热门文章
- import * as x from 'xx' 和 import x from 'xx'
- 约翰库缇斯的经典语录
- 工控计算机+isa接口,研华工控机IPC-610系列可提供多个PCI、ISA总线
- jQuery暴打灰太狼小游戏
- Django重写User模型修改明文密码加密方法
- HTML5期末大作业:仿天猫购物网站设计——仿天猫购物商城(7页) 网页设计作业,网页制作作业, 学生网页作业, 网页作业成品, 网页作业模板
- 加工中心计算机编程自学,加工中心编程能自学吗?
- 屏幕中间html滚动字幕,Gom引擎屏幕中间滚动大字及屏幕其他信息滚动条脚本实例...
- java实现word(docx)在线编辑(word转html,html转word)——代码实现
- 充电宝国产品牌推荐,国产充电宝排名