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是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)