查壳 的 PE 是什么

查壳 的 PE 是什么,第1张

Windows下的可执行文件称为PE

Dos下的可执行文件称为ME

PE病毒是指所有感染Windows下PE文件格式文件的病毒

PE病毒大多数采用Win32汇编编写

PE病毒对于一个热衷于病毒技术的人来说,是必须掌握的

只有在PE病毒中,我们才能真正感受到高超的病毒技术

编写Win32病毒的几个关键

Api函数的获取

不能直接引用动态链接库

需要自己寻找api函数的地址,然后直接调用该地址

一点背景:在PE Loader装入我们的程序启动后堆栈顶的地址是是程序的返回地址,肯定在Kernel中! 因此我们可以得到这个地址,然后向低地址缩减验证一直到找到模块的起始地址,验证条件为PE头不能大于4096bytes,PE header的ImageBase值应该和当前指针相等

病毒没有data段,变量和数据全部放在code段

编写Win32病毒的几个关键

偏移地址的重定位

Call delta

delta: pop ebp

sub ebp,offset delta

那么变量var1的真正偏移地址为:var1+ebp

对PE文件格式的了解

编写Win32病毒的几个关键

病毒如何感染其他文件

在文件中添加一个新节

该新节中添加病毒代码和病毒执行后的返回Host程序的代吗

修改文件头中代码开始执行位置(AddressOfEntryPoint)指向新添加的节,以便程序运行后先执行病毒代码

PE病毒感染其他文件的方法还有很多,譬如PE病毒还可以将自己分散插入到每个节的空隙中等等,这里不在一一叙述

PE文件格式一览

Section n

Section

Section 2

Section 1

Section table

PE header

DOS stub

DOS MZ header

PE header

Pe header 由三部分组成

字串 "PE\0\0"(Signature)

映像文件头(FileHeader)

可选映像头(OptionalHeader)

字串 "PE\0\0"

Signature 一dword类型,值为50h, 45h, 00h, 00h(PE\0\0) 本域为PE标记,我们可以此识别给定文件是否为有效PE文件

这个字串在文件中的位置(e_lfanew),可以在DOS程序头中找到它的指针,它占用四个字节,位于文件开始偏移3CH字节中

映像文件头

该结构域包含了关于PE文件物理分布的信息, 比如节数目,文件执行机器等

它实际上是结构IMAGE_FILE_HEADER的简称

映像文件头结构

IMAGE_FILE_HEADER STRUCT

___ Machine WORD

___ NumberOfSections WORD

___ TimeDateStamp dd

___ PointerToSymbolTable dd

___ NumberOfSymbols dd

___ SizeOfOptionalHeader WORD

___ Characteristics WORD

IMAGE_FILE_HEADER ENDS

映像文件头的基本信息

关于文件信息的标记,比如文件是exe还是dll

2

Characteristics

7

可选头的大小

2

SizeOfOptionalHeader

6

符号数目

4

NumberOfSymbols

5

COFF符号表的偏移

4

PointerToSymbleTable

4

生成该文件的时间

4

TimeDataStamp

3

文件中节的个数

2

NumberOfSection

2

机器类型,x86为14ch

2

Machine

1

描述

大小(字节)

名字

顺序

可选映像头

optional header 结构是 IMAGE_NT_HEADERS 中的最后成员包含了PE文件的逻辑分布信息该结构共有31个域,一些是很关键,另一些不太常用这里只介绍那些真正有用的域

这儿有个关于PE文件格式的常用术语: RVA

RVA 代表相对虚拟地址它是相对虚拟空间里的一个地址

举例说明,如果PE文件装入虚拟地址(VA)空间的400000h处,且进程从虚址401000h开始执行,我们可以说进程执行起始地址在RVA 1000h每个RVA都是相对于模块的起始VA的

可选映像头

文件中节对齐的粒度

FileAlignment

内存中节对齐的粒度

SectionAlignment

PE文件的优先装载地址比如,如果该值是400000h,PE装载器将尝试把文件装到虚拟地址空间的400000h处若该地址区域已被其他模块占用,那PE装载器会选用其他空闲地址

ImageBase

PE装载器准备运行的PE文件的第一个指令的RVA若要改变整个执行的流程,可以将该值指定到新的RVA,这样新RVA处的指令首先被执行

AddressOfEntryPoint

描述

名字

可选映像头

NT用来识别PE文件属于哪个子系统

Subsystem

一IMAGE_DATA_DIRECTORY 结构数组每个结构给出一个重要数据结构的RVA,比如引入地址表等

DataDirectory

所有头+节表的大小,也就等于文件尺寸减去文件中所有节的尺寸可以以此值作为PE文件第一节的文件偏移量

SizeOfHeaders

内存中整个PE映像体的尺寸

SizeOfImage

win32子系统版本若PE文件是专门为Win32设计的,该子系统版本必定是40否则对话框不会有3维立体感

MajorSubsystemVersion

MinorSubsystemVersion

描述

名字

DataDirectory数据目录

一个IMAGE_DATA_DIRECTORY数组,里面放的是这个可执行文件的一些重要部分的RVA和尺寸,目的是使可执行文件的装入更快,数组的项数由上一个域给出IMAGE_DATA_DIRECTORY包含有两个域,如下:

IMAGE_DATA_DIRECTORY

VitualAddress DD

Size DD

IMAGE_DATA_DIRECTORY ENDS

节表

节表其实就是紧挨着 PE header 的一结构数组该数组成员的数目由 file header (IMAGE_FILE_HEADER) 结构中 NumberOfSections 域的域值来决定节表结构又命名为 IMAGE_SECTION_HEADER

结构中放的是一个节的信息,如名字,地址,长度,属性等

IMAGE_SECTION_HEADER

本节原始数据在文件中的位置

4

PointerToRawData

5

本节的原始尺寸

4

SizeOfRawData

4

这个值+映像基地址=本节在内存中的真正地址OBJ中无意义

4

Virtual

3

OBJ文件用作表示本节物理地址EXE文件中表示节的真实尺寸

4

PhysicalAddress或VirtualSize

2

节名

8

Name

1

描述

大小(字节)

名字

顺序

IMAGE_SECTION_HEADER

节属性

4

Characteristics

10

本节在行号表中的行号数目

2

NumberOfLinenumbers

9

本节要重定位的数目

2

NumberOfRelocations

8

行号偏移

4

PointerToLinenumbers

7

OBJ中表示该节重定位信息的偏移EXE文件中无意义

4

PointerToRelocations

6

描述

大小(字节)

名字

顺序

"节(Section)"跟在节表之后,一般PE文件都有几个"节"比较常见的有:

代码节

已初始化的数据节

未初始化的数据节

资源节

引入函数节

引出函数节

代码节

代码节一般名为text或CODE,该节含有程序的可执行代码

每个PE文件都有代码节

在代码节中,还有一些特别的数据,是作为调用映入函数之用如:

Call MessageBoxA的调用,反汇编后该指令被换为call 0040101A,而地址0040101A仍在text中,它放有一个跳转指令jmp dword ptr[0040304c],即这条跳转指令的目的地址处于idata节中的0040304C处,其中放的才是MessageBoxA的真正地址,如下图:

已初始化的数据节

这个节一般取名为data或DATA

已初始化的数据节中放的是在编译时刻就已确定的数据如Hello World 中的字符串"Hello World!"

未初始化的数据节

这个节的名称一般叫bbs

这个节里放有未初始化的全局变量和静态变量

资源节

资源节一般名为rsrc

这个节放有如图标,对话框等程序要用到的资源

资源节是树形结构的,它有一个主目录,主目录下又有子目录,子目录下可以是子目录或数据

都是一个IMAGE_RESOURCE_DIRECTORY结构结构如下:

IMAGE_RESOURCE_DIRECTORY 结构

以ID标识的资源数

2

NumberOfldEntries

6

以名字标识的资源数

2

NumberOfNamedEntries

5

次版本号

2

MinorVersion

4

主版本号

2

MajorVersion

3

资源生成时间

4

TimeDateStamp

2

通常为0

4

Characteritics

1

描述

大小(字节)

名字

顺序

引入函数节

一个引入函数是被某模块调用的但又不在调用者模块中的函数

这个节一般名为idata,也叫引入表

它包含从其它(系统或第三方写的)DLL中引入的函数,例如user32dll,gdi32dll等

它的开始是一个IMAGE_IMPORT_DESCRIPTOR数组这个数组的长度不定,但他的最后一项是全0,可以以此判断数组的结束

引出函数节

什么是引出函数节

引出函数节是用来向系统提供导出函数的名称,序号和入口地址等信息,以便Windows装载器通过这些信息来完成动态链接的过程

了解引出函数节对于学习病毒来说,是极为重要的

Api函数地址的获取与引出函数节息息相关

引出函数节

通过Api函数名查找其地址

(1)定位到PE文件头

(2)从PE文件头中的课选文件头中取出数剧目录表的第一个数据目录,得到导出表的地址

(3)从导出表的NumberOfNames字段得到以命名函数的总数,并以这个数字做微循环的次数来构造一个循环

(4)从AddressOfNames字段指向的函数名称地址表的第一项开始,在循环中将每一项定义的函数名与要查找的函数名比较,如果没有任何一个函数名符合,说明文件中没有指定名称的函数

(5)如果某一项定义的函数名与要查找的函数名符合,那么记住这个函数名在字符串地址表中的索引值,然后在AddressOfNameOrdinals指向的数组中以同样的索引值去除数组项的值,假如该值为m

(6)以m值作为索引值,在AddressOfFunctions字段指向的函数入口地址表中获取的RVA就是函数的入口地址,当函数被装入内存后,这个RVA值加上模块实际装入的基址(ImageBase),就得到了函数真正的入口地址

参考资料:

中国毒客公社

很多新手想要学汉化软件。不知道从何学。今天我就发个最基本的查壳教程。当然咯。此教程只对新手。老鸟请飞过。下面我就简单的介绍一下:

新手想要学汉化。第1步。就是要查壳。看看软件加的是什么壳。什么是壳。壳呢?就象我们人穿的外表的衣服。穿了衣服。我们也就看不到里面的。下面我就用PEID查壳软件来查壳:

PEiD查壳软件介绍:

PEiD 可以探测大多数的 PE 文件封包器、加密器和编译器。当前可以探测 600 多个不同签名。

PEiD 是最强大的一个查壳工具。

汉化包中包含了绝大多数插件,并添加了某些插件必须的库文件(mfc70dll、msvcr70dll、rtl70bpl、vcl70bpl)。

查壳目标:SWF to MP3 Converter英文版

查壳工具:PEiD

首先:您要下载SWF to MP3 Converter英文版的软件和PEiD软件。

然后。运行PEiD主程序。如下图:

看到了吗?这个就是PEiD主程序界面,( 点击)那几个小数点的。那几点小数点。就是(浏览)的意思。找到您要汉化的英文版软件的主程序。如图:

您找到英文版的主程序以后。点(打开) ,如图:

您找到英文版的主程序以后。点(打开)后。就会出现如下图4:

上面的图,看到了没有。说明这个软件是没有加壳的。是用Microsoft Visual C++ 60软件编写的。如果您查到了是aspack的。那就说明是加了aspack的壳。您可以用专门脱aspack脱壳机来脱壳。不过。用自动的脱壳机。本人觉得不理想。对于新版本。根本就无法脱壳。很多高手都是用OllyDBG V110 手工来脱壳的。这里我就不多说了。

如果有出现未知的壳。或别的。可以用下面的方法来看看有没有加壳。如图:

看到上图了吗?可以点击红色线条处。查看有没有加壳。有些软件没有加壳。但。却无法显示出来。所以呢?我们就要再看一下。如图

看到上面的图6吗?按图中的说法做。点击各个按钮来查看有没有加壳。如果都没有加壳。那就可以汉化了。如果有一个加了壳。那就无法汉化。必须要脱掉。才能汉化。

象:Microsoft Visual C++ 60编写的软件。我们可以用:PE Explorer V198 R2汉化工具来汉化。也可以用:Passolo V70011汉化工具来汉化。这里我就不多说了。

Passolo V70011汉化工具是目前最好的汉化工具。

说明:由于现在很多软件编写用的软件。都不一样。所以呢?要看是用什么软件编写的。我们就用对应的汉化工具来汉化。如:Visual Basic 编写的软件。我们就要用VBLocalize V10 来汉化。现在这个软件有汉化版了。〕软件在本站搜索,这个可执行文件可以用什么软件加以修改,1楼楼主能教一下吗?谢谢。。。。

补充

你用《upx 080-124 》破解软件破解

如果没有这个专用破解软件,

请用人工破解软件破解,但 那样很麻烦,要有一定的技术?

人工破解软件名:OllyDBG V110 汉化第二版

⊕本文来自: 360安全网() 详细出处参考:>

U盘PE中的PE是指Windows Preinstallation Environment(Windows PE),Windows预安装环境。

Windows预安装环境是带有有限服务的最小Win32子系统,基于以保护模式运行的Windows XP Professional及以上内核。它包括运行Windows安装程序及脚本、连接网络共享、自动化基本过程以及执行硬件验证所需的最小功能。

扩展资料:

PE的用途:

一、方便易用的启动工具盘

Windows PE启动相当快捷,而且对启动环境要求不高;其功能几乎相当于安装了一个 Windows 的命令行版本。因此,对于个人计算机用户,只要将其写入U盘(或刻录在一张光碟上),便可放心地去解决初始化系统之类的问题;而对小型网络环境(如网吧等)用户来说,这一功能尤其实用。

二、有趣的硬盘使用功能

自定义的Windows PE不仅可放到那些可移动存储设备如CD上,还可以放在硬盘上使用。许多朋友会认为将Windows PE的自定义版本放在硬盘上没有什么意义,其实不然。

第一, *** 作系统损坏无法进入的情况下启动硬盘上的Windows PE可以方便地修复,由于Windows PE在硬盘上,所以在Windows PE环境下安装应用程序就有了可能。以下是如何把自定义的Windows PE安装到硬盘上的步骤(只能在硬盘上放置Windows PE的32位版本)。

首先要安装恢复控制台:

(1)将Windows XP Professional CD放在CD-ROM驱动器中,这里指定其为[cd_drive]。

(2)在命令行CMD窗口中运行[cd_drive]:\i386\winnt32exe /cmdcons。

然后将Windows PE自定义可引导副本放置在硬盘上,如下 *** 作:

(1)在目标硬盘上,创建“C:\Minint”的目录(这里必须将目录命名为“Minint”)。

(2)将Windows PE“根目录\i386”下的所有内容复制到C:\Minint。

(3)从Windows PE根目录下将Winbomini复制到目标硬盘的根目录。

(4)在目标硬盘上,将“C:\Cmdcons\txtsetupsif”的只读属性改为读/写。

(5)在目标硬盘上,将“C:\Minint\txtsetupsif”复制到“C:\Cmdcons”进行覆盖。

(6)重新启动目标计算机。在“引导”菜单上,选择引导到“命令控制台”,计算机将使用Windows PE引导。

三、Windows OEM 实用工具

如果用户在 Windows *** 作系统环境下打开OEM光碟,它就会自动运行Autoruninf为用户的系统安装一个“Windows安装管理器”的工具包。利用它可以轻易制造出带有计算机厂商OEM标志的Windows安装镜像(对个人没意义)。

还可任意设定Windows PE携带的软件,并可设置这些软件在Windows PE启动时运行。用户甚至可以为自定义的Windows PE版本加上类似于Windows Explorer的图形外壳程序。

PE的制作方法:

第一种:

制作Windows PE光盘ISO文件前,首先需要安装PE Builder并完成所有软件的集成。制作Windows PE光盘ISO文件的方法:

第1步,在PE Builder窗口工具栏中选中“制作ISO映像档”单选钮,并单击右侧的浏览按钮选择ISO映像文件的保存位置。然后单击“产生”按钮。

第2步,打开“Create directory(创建目录)”对话框,提示用户是否创建BartPE文件夹。单击“是”按钮。

第3步,在打开的“Windows版权”对话框中直接单击“我同意”按钮,PE Builder开始复制相关文件,并制作ISO文件。制作完成后单击“关闭”按钮即可。

第4步,在PE Builder窗口工具栏中单击“离开”按钮关闭PE Builder,然后打开保存ISO文件的文件夹,用户可以看到制作的ISO文件。

第二种:

准备工具:nt6x系统镜像 UltraISO Gimagex

第一步,用UltraISO打开win8的ISO镜像,进入sources文件夹,找到bootwim文件提取到任意位置。

第二步,使用Gimagex,选择装载映像,装载到某个空文件夹(一定要空文件夹),选择映像就是刚才提取的bootwim。单击选择,选第2个(一定要第2个!)勾选读取与写入,点击装载,等待d出“映像装载成功”点击关闭,但不要关闭主程序。

第三步,装载完成,进入装载的目录,用户需要的是“program files” “program files(x86)” “Windows” “用户”。其余的可以一律删除,但是删除过程可能会权限不足,可以通过获取权限或者360粉碎等手段。也可以把这四个文件夹复制到他处或者进入无权限限制的系统删除。回到Gimagex,选择制作映像,来源选择装载的目录保存位置,保存位置任意,主要不能和原来的boot重复,压缩比最高,勾选可启动映像。点击创建新映像。

第四步,等待提示成功后关闭,回到装载映像处不勾选提交,选择挂载映像点击卸载。卸载一定要做,否则挂载的文件以后很难删除。卸载后删除原来的bootwim,改新映像名bootwim。至此,一个PE核心部分完成。

第五步,PE制作完成了,但此时还缺一个壳,要使PE正常启动,必须再把它改造成iso镜像。

本文选择的方法是改造系统安装盘的iso镜像。使用UltraISO打开原版镜像,保留文件 boot efi sources bootmgr bootmgrefi 其余删除。 接着进入sources文件夹,删除所有文件。在UltraISO窗口下部找到改造的bootwim,添加到sources文件夹内。完成,将成品另存为。千万别点保存,否则自己的原版镜像就没了。

第三种:

准备工具:GHO系统镜像文件、u大师u盘启动盘制作工具、u盘

第一步:运行u大师u盘启动盘制作工具,选择HDD模式,接着点击一键制作usb启动盘。

第二步:将下载好的GHO系统镜像文件放入u盘中的GHO文件夹下即可,这样一个u盘PE系统启动盘就制作好了。

第三步:在计算机启动的第一画面上按"DEL"键进入BIOS(可能有的主机不是DEL有的是F2或F1请按界面提示进入),选择Advanced BIOS FEATURES ,将Boot Sequence(启动顺序),设定为USB-HDD模式。

第四步:插入u盘pe启动盘,然后重启电脑即可进入PE系统界面。

参考资料来源:百度百科——Windows PE

以上就是关于查壳 的 PE 是什么全部的内容,包括:查壳 的 PE 是什么、请问查壳软件PEID中的PE是什么意思是那个英文的缩写、U盘PE中的PE是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9754881.html

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

发表评论

登录后才能评论

评论列表(0条)

保存