首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

免杀基础之一文学废PE文件格式

: 第一个成员e_magic,作为判断是否为PE文件一个表示,如果不是"MZ"(16进制0x5A4D),那就不是PE文件,如果是还要看PE头标识。...,再点击每个对应可以展开按钮,即可看到相应参数对应值, 比如点开输入,可看到调用了哪些动态链接库,又在动态链接库里调用了哪些API: 为了加深理解,下面对一些重要进行学习解析。...地址转换函数 解析这些之前,先写一个地址转换函数,就是将相对虚拟地址(RVA)转换为文件偏移地址(Offset)。 那么为什么要写这样一个函数呢?...当PE文件在被载入时,Windows加载器工作之一就是定位所有数据函数和数据,并让正在载入文件可以使用那些地址。...如果一个变量是全局那么所有线程访问是同一份,某一个线程对其修改会影响其他所有线程。如果我们需要一个变量在每个线程中都能访问,并且值在每个线程中互不影响,这就是TLS。

1.3K20

PE文件小知识

DOS stub其实就是一个有效EXE,如果OS是不支持PE文件那么它将显示为一个错误提示 对于DOS头信息我们只需要关注两个字段即可:e_magic和e_lfanew,e_magic字段(一个字大小...如果可执行文件是在这个地址装入那么加载器将跳过应用基址重定位步骤。 (11)SectionAlignment:当装入内存时区块对齐大小。每个区块装入地址必定是本字段指定数值整数倍。...区段分析----常见区段名与他们作用描述 .text:.text节包含了CPU执行指令。所有其他节存储数据和支持性信息。一般来说,这是唯一可以执行节,也应该是唯一包含代码节。...如果 装入时按默认值作为基地址装入,则不需要重 定位。但如果可执行文件装载到虚拟内存一个地址,链接器所登记那个地址就是错误 ,这时就需要用重定位来调整。...上图中2位置高亮显示IMAGE_FILE_HEADER项中,包含了关于文件基本信息,有时呢,我们还会看到一个时间戳,但是这个时间戳不一定靠谱,如果是Delphi编译,那么时间戳统一是92年6月19

10210
您找到你想要的搜索结果了吗?
是的
没有找到

Oracle索引建立及优缺点

2)索引是建立在可选对象;索引关键在于通过一组排序后索引键来取代默认扫描检索方式,从而提高检索效率 3)索引在逻辑上和物理上都与相关和数据无关,当创建或者删除一个索引时,不会影响基本...CREATE INDEX 索引名 ON 名(列名1, 列名2, 列名3, ...); 删除索引。 DROP INDEX 索引名; 查看某个所有索引。...SELECT * FROM ALL_INDEXES WHERE TABLE_NAME = '名' 还可以查看某个中建立了索引所有列。...索引建立原则 索引应该建立在WHERE子句中经常使用列上。如果某个大经常使用某个字段进行查询,并且检索啊行数小于总表行数5%,则应该考虑在该列上建立索引。...对于两个连接字段,应该建立索引。 如果经常在某一个字段上进行Order By的话,则也应该在这个列上建立索引。 不应该在上建立索引。

1.2K40

NSIS 打包脚本基础

SubSection [/e] Caption [subsection_name index output] ;修饰符/e用于该子区段所有区段是否默认展开。...如果使用了 /nonfatal 开关且当文件未找到时使用警告来代替错误 如果使用了 /a 开关,则添加文件属性将会保持 如果使用了 /r 开关,匹配文件将会在子目录里递归搜索。...如果指定了 /ifempty,则该注册键仅当它无子键时才会被删除(否则,整个注册键将被删除)。有效根键值在后面的 WriteRegStr 列出。...如果该键不能被删除(或如果它不存在)则会放置一个错误标记。...从 “INI文件” 区段区段读取 “项” 值并把该值输出到用户变量。如果该项未找到时会放置一个错误标记且该用户变量赋为空值。

4.6K60

Page management in InnoDB space files(4.InnoDB Space文件页管理)

范围描述符中各个字段目的是: File segment ID:范围所述文件段ID,如果它属于一个文件段。...但是这个位目前没有使用,并且总是设置位1。 引用区段其他结构使用区段描述符所在FSP_HDR或者XDES页页码和描述符条目本身在该页字节offset组合来引用区段。...丽日,每个带有FSP_HDR或者XDES页区段将被放在FREE_FRAG列表中,以便区段剩余空闲页可以分配给其他用途。...当使用最后一个空闲页是偶,区段将移动到完整列表。 FULL:没有分配给此文件段空闲页区段如果页面变为空闲,则将区段移动到NOT_FULL列表。...例如,在一个新创建中,唯一存在是页面的根页面,他也是要给叶子页面,但是存在于内部文件段中,以便它不必再以后移动,叶文件段INODE列表和片段数组将全部为空,内部文件段INODE列表将全部为空

95721

SQL命令 CREATE INDEX(二)

然后重建所有指数。 它们将区分大小写。 注意:当数据其他用户访问时,不要重建索引。 这样做可能会导致不准确查询结果。...如果使用DDL(而不是使用类定义)来创建那么它就满足了这个要求,并且可以使用位图索引。 位图索引应该只在可能不同字段值数量有限且相对较小情况下使用。...例如,对于性别、国籍或时区字段,位图索引是一个很好选择。 位图不应该在具有UNIQUE约束字段上使用。...如果两个或多个字段通常被组合查询,那么为这些字段定义位图索引可能是有利。 BITMAPEXTENT关键字 位图区段索引是本身位图索引。...注意:如果其他用户正在访问数据,则在重建索引时必须采取其他步骤。如果不这样做,可能会导致查询结果不准确。有关更多详细信息,请参阅在活动系统上构建索引。

64420

InnoDB bugs found during research on InnoDB data storage(10.在研究InnoDB数据存储时发现InnoDB bug)

snowflake生成64位递增id,其中包含一个时间戳组件。插入通常是通过队列和其他非即时机制进行,因此IDs将发现它们进入数据库方式略有混乱。...为此,它分配一个区段(64个页面),分配所需两个页面,然后将剩余区段(62个空闲页面)添加到一个名为FREE_FRAG区段列表中,该区段用于单页分配。...几乎没有从该列表中分配页面,所以这些页面浪费了。 这是相当微妙,在任何大型InnoDB中只浪费0.37%磁盘空间,但尽管如此,这还是很有趣,而且很容易修复。...这是一个过多数额;在一个生产系统中,每一个1%都加起来了。这应该被限制在一个合理数额。...2.记录不适合放入目标页面,然后该页面分成两个页面,每个页面上都有原始页面上一半记录。页面分割后,插入将发生在两个结果页面中一个页面中。

58300

PE文件结构

DOS stub其实就是一个有效EXE,如果OS是不支持PE文件那么它将显示为一个错误提示 对于DOS头信息我们只需要关注两个字段即可:e_magic和e_lfanew,e_magic字段(一个字大小...(10)ImageBase:文件在内存中首选装入地址(基地址)。如果有可能(也就是说,目前如果没有其他占据这块地址,它是正确对齐并且是一个合法地址,等等),加载器试图在这个地址装入PE文件。...如果可执行文件是在这个地址装入那么加载器将跳过应用基址重定位步骤。 (11)SectionAlignment:当装入内存时区块对齐大小。每个区块装入地址必定是本字段指定数值整数倍。...一些其他注意事项: 1.区段名是可以随意修改,所以默认区段名知识给我们一些参考,很多恶意软件或者加壳之后软件都会去修改区区段名称等信息。...但如果可执行文件装载到虚拟内存一个地址,链接器所登记那个地址就是错误 ,这时就需要用重定位来调整。在PE文件中 ,它往往单独分为一块,用“.reloc”表示。

14810

InnoDB with reduced page sizes wastes up to 6% of disk space(15.InnoDB减少页大小会造成6%磁盘空间浪费)

为此,它分配一个区段(64个页面),分配所需两个页面,然后将剩余区段(62个空闲页面)添加到一个名为FREE_FRAG区段列表中,该区段用于单页分配。...几乎没有从该列表中分配页面,所以这些页面浪费了。 这是相当微妙,在任何大型InnoDB中只浪费0.37%磁盘空间,但尽管如此,这还是很有趣,而且很容易修复。...如果我们使用8个KiB页面而不是在配置中设置innodb_page_size=8k ?每个区段页数变为1048576 / 8192 =每个区段128页。簿记页频率改为每8192页。...据我所知,这或多或少是InnoDB压缩代码中一个错误;它应该使用实际页面大小(来自于压缩KEY_BLOCK_SIZE,也就是zip_size),而不是在编译时固定系统默认页面大小(UNIV_PAGE_SIZE...果您正在考虑在您系统中使用4k页面,您可能想要订阅这个错误,并且可能会推迟,除非您能够负担超过6%磁盘空间浪费(以及所有其他浪费)。

39310

PE数据目录表解析

,再点击每个对应可以展开按钮,即可看到相应参数对应值, 比如点开输入,可看到调用了哪些动态链接库,又在动态链接库里调用了哪些API: 为了加深理解,下面对一些重要进行学习解析。...地址转换函数 解析这些之前,先写一个地址转换函数,就是将相对虚拟地址(RVA)转换为文件偏移地址(Offset)。 那么为什么要写这样一个函数呢?...当PE文件在被载入时,Windows加载器工作之一就是定位所有数据函数和数据,并让正在载入文件可以使用那些地址。...,多个DLL文件使用调用其本身EXE文件地址空间,不能保证ImageBase所指向地址没有其他DLL文件占用,所以DLL文件当中必须包含重定位信息,也就是说,本来A.DLL加载到test.exe...如果一个变量是全局那么所有线程访问是同一份,某一个线程对其修改会影响其他所有线程。如果我们需要一个变量在每个线程中都能访问,并且值在每个线程中互不影响,这就是TLS。

1.6K20

数据库笔记之索引和事务

聚集索引决定了数据物理存储顺序,也就是说物理存储是根据聚集索引结构进行顺序存储,因此一个只能有一个聚集索引。...除了聚集索引以外其他索引,都称之为非聚集索引,非聚集索引一般都是为了优化特定查询效率而创建。...事务 事务就是被绑定在一起作为一个逻辑工作单元SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上个节点。事务四个属性:ACID。...数据库锁:锁定整个数据库,这通常发生在整个数据库模式改变时候。 锁:锁定整个,这包含了与该表相关联所有数据相关对象,包括实际数据行(每一行)以及与该表相关联所有索引中键。...区段锁:锁定整个区段,因为一个区段由8页组成,所以区段锁定是指锁定控制了区段、控制了该区段内8个数据或索引页以及这8页中所有数据行。 页锁:锁定该页中所有数据或索引键。

14520

PE格式:IATHook原理分析与代码编写

图片上图中在PE字符串开头位置向后偏移1字节,就能看到黄色014C此处代表是机器类别的十六进制表示形式,在向后偏移1个字节是紫色0006代是程序中区段数,继续向后偏移1字节会看到蓝色5DB93874...导入结构大小为4*5 = 20个字节空间,导入结构结束位置通常会通过使用一串连续4*5个0表示结束,接下来我们将从后向前逐一分析这个数据结构所对应到程序中位置。...字段,我们将其加上ImageBase地址,定位过去发现该地址刚好是LoadIconW函数地址,那么我们有理由相信紧随其后地址应该是下一个外部函数地址,而事实也正是如此。...,由第一张图可知,图中标红部分第一个四字节0001A38C 就是它丫!...图片该结构中我们需要关注AddressOfData结构成员,该成员中数据最高位(红色)如果为1(去掉1)说明是函数导出序号,而如果最高位为0则说明是一个指向IMAGE_IMPROT_BY_NAME结构

41400

2024年春运抢票大作战:揭秘12306,为什么你票总是“飞”了?

那么从北京西到深圳北也就是从起点坐到终点票最多可以卖100张,但是如果一个人买了北京西到石家庄,那全程票只能卖99了,所以这会涉及到动态库存变化。...那么库存有了,售票时候怎么计算呢?如果现在有个人小a,买了CD票,那和CD有关库存类型都要减一,也就是id等于3,5,6行,余票都要减一。...同理可以用0和1比特位来表示。 如果说刚才小a是第一个买票的人,那可以给他分配位置00000001,然后存入用户记录中。...,第一个座位回收利用了,就优先分配给小b了。...,该区段内对应所有原子区间库存都要减一,只要能减成功,那就可以出票,退票的话就是区段内对应所有原子区间余票加一。

14310

检查 GPU 渲染速度和过度绘制

此分析工具可帮助您确定 GPU 何时因尝试绘制像素而不堪重负,或何时因大量过度绘制而拖累。 注意:此分析工具不适用于使用 NDK 应用。...大区段表示处理视图层次结构需要很长时间。 动画 表示评估运行该帧所有动画程序所花时间。如果区段很大,表示您应用可能在使用性能欠佳自定义动画程序,或因更新属性而导致一些意料之外工作。...输入处理 表示应用执行输入事件回调中代码所花时间。如果区段很大,表示应用花太多时间处理用户输入。不妨考虑将此类处理任务分流到其他线程。...其他时间/VSync 延迟 表示应用执行两个连续帧之间操作所花时间。它可能表示界面线程中进行处理太多,而这些处理任务本可以分流到其他线程。 1....更新 表示用于创建和更新视图显示列表时间。如果竖条此部分很高,表明可能有许多自定义视图绘制,或 onDraw 方法执行工作很多。 2. Android 4.0 和 5.0 中竖条区段

1.7K20

PE格式:IATHook原理分析与代码编写

图中在PE字符串开头位置向后偏移1字节,就能看到黄色014C此处代表是机器类别的十六进制表示形式,在向后偏移1个字节是紫色0006代是程序中区段数,继续向后偏移1字节会看到蓝色5DB93874...导入结构大小为4*5 = 20个字节空间,导入结构结束位置通常会通过使用一串连续4*5个0表示结束,接下来我们将从后向前逐一分析这个数据结构所对应到程序中位置。...字段,我们将其加上ImageBase地址,定位过去发现该地址刚好是LoadIconW函数地址,那么我们有理由相信紧随其后地址应该是下一个外部函数地址,而事实也正是如此。...,由第一张图可知,图中标红部分第一个四字节0001A38C 就是它丫!...该结构中我们需要关注AddressOfData结构成员,该成员中数据最高位(红色)如果为1(去掉1)说明是函数导出序号,而如果最高位为0则说明是一个指向IMAGE_IMPROT_BY_NAME结构(

30620

4.3 IAT Hook 挂钩技术

图片上图中在PE字符串开头位置向后偏移1字节,就能看到黄色014C此处代表是机器类别的十六进制表示形式,在向后偏移1个字节是紫色0006代是程序中区段数,继续向后偏移1字节会看到蓝色5DB93874...导入结构大小为4*5 = 20个字节空间,导入结构结束位置通常会通过使用一串连续4*5个0表示结束,接下来我们将从后向前逐一分析这个数据结构所对应到程序中位置。...字段,我们将其加上ImageBase地址,定位过去发现该地址刚好是LoadIconW函数地址,那么我们有理由相信紧随其后地址应该是下一个外部函数地址,而事实也正是如此。...,由第一张图可知,图中标红部分第一个四字节0001A38C 就是它。...而如果最高位为0则说明是一个指向IMAGE_IMPROT_BY_NAME结构(导入)RVA(蓝色)地址,此处因为我们找是导入所以最高位全部为零。

65820

基因芯片数据分析(三):数据质控

因为大部分细胞都有β-actin和GAPDH,所以Affymetrix在大部分基因芯片里都将它们设置为一组观察RNA降解程度内参。针对它们探针组很好涵盖了3’至5一个区段。...它们RNA是在标记过程中加入样品体系如果BioB不能MAS5算法标记为P,说明该芯片敏感度没有达标。这很有可能是芯片本身问题。...一般如果多个平行实验中,如果一个芯片各项指标都不太正常,尤其是BioB无法检测到,可以判定为芯片故障。 每一个探针组都均匀包含了目标基因3’至5’不同区段特异序列。...RNA降解图,它原理是RNA降解从5’端开始,因为芯片结果5端荧光强度要远低于3’端。如果斜率过大的话,说明降解较为严重,斜率接近0说明降解较少或者全部降解。...如果图中出现红色BioB字样,说明该样品嵌入探针未能检测到BioB。 actin和GAPDH 3’/5’比值 也分别以△和○表示出来。

3.1K31

PE格式:分析IatHook并实现

图中在PE字符串开头位置向后偏移1字节,就能看到黄色014C此处代表是机器类别的十六进制表示形式,在向后偏移1个字节是紫色0006代是程序中区段数,继续向后偏移1字节会看到蓝色5DB93874...导入结构大小为4*5 = 20个字节空间,导入结构结束位置通常会通过使用一串连续4*5个0表示结束,接下来我们将从后向前逐一分析这个数据结构所对应到程序中位置。...,由第一张图可知,图中标红部分第一个四字节0001A38C 就是它丫!...该结构中我们需要关注AddressOfData结构成员,该成员中数据最高位(红色)如果为1(去掉1)说明是函数导出序号,而如果最高位为0则说明是一个指向IMAGE_IMPROT_BY_NAME结构(...---- 一个 DLL 文件对应一个 IMAGE_IMPORT_DESCRIPTOR 结构,而一个 DLL 文件中有多个函数,那么需要使用两个循环来进行枚举。

37010

4.3 IAT Hook 挂钩技术

图中在PE字符串开头位置向后偏移1字节,就能看到黄色014C此处代表是机器类别的十六进制表示形式,在向后偏移1个字节是紫色0006代是程序中区段数,继续向后偏移1字节会看到蓝色5DB93874...导入结构大小为4*5 = 20个字节空间,导入结构结束位置通常会通过使用一串连续4*5个0表示结束,接下来我们将从后向前逐一分析这个数据结构所对应到程序中位置。...字段,我们将其加上ImageBase地址,定位过去发现该地址刚好是LoadIconW函数地址,那么我们有理由相信紧随其后地址应该是下一个外部函数地址,而事实也正是如此。...,由第一张图可知,图中标红部分第一个四字节0001A38C 就是它。...而如果最高位为0则说明是一个指向IMAGE_IMPROT_BY_NAME结构(导入)RVA(蓝色)地址,此处因为我们找是导入所以最高位全部为零。

26040
领券