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

161bytes的PE文件是如何炼成的~

本文视你对PE文件的熟悉程度,初学者,大概会花掉你两个小时左右的时间完全理解。 最近在网上看到有大神做了个161bytes的hello world,正巧毕业前忧郁闲着,就花几个小时的时间把这个程序结构厘清了一遍,算是重新更深入地学习一次PE文件,写下本文和大家交流。 预备工具:一个xp系统,win7下它跑不动。Winhex,记得弄个破解版。其它的一些你习惯的PE查看工具(我试了几个都不能很好解析这个PE,其实PE解析工具就是在模仿windows解析PE文件,如果程序员本身都对PE文件没有一个深入的理解,写出来的工具模仿windows加载器不够像,就不足够应付畸形的却能够正常运行的PE) 下面先附上十六进制。 4D5A0000504500004C010100E97700000000007869616F00280002000B0148656C6C6F20576F726C642100000C0000005553455233320000000040000400000004000000300000009D000000040000000C000000300000000C00000000000000020000000000000000000000000000000000000000000000020000000000000000000000380000006A006813004000681E0040006A00FF159D004000C3DD010080 Copy到winhex里,粘贴选择ASCII Hex,保存即可。 正式进入正题: 缩小PE,一个惯用手段就是把各种PE结构重叠到一起,这样的PE看起来很晦涩,一个数据项往往扮演着多个数据结构的角色。

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

PE文件详解(六)

这篇文章转载自小甲鱼的PE文件详解系列原文传送门 之前简单提了一下节表和数据目录表,那么他们有什么区别? 其实这些东西都是人为规定的,一个数据在文件中或者在内存中的位置基本是固定的,通过数据目录表进行索引和通过节表进行索引都是可以找到的,也可以这么说,同一个数据在节表和数据目录表中都有一份索引值,那么这两个表有什么区别?一般将具有相同属性的值放到同一个节区中,这也就是说同一个节区的值只是保护属性相同,但是他们的用途不一定是一样的,但是在同一数据目录表中的数据的作用是相同的,比如输入函数表中只会保存输入函数的相关信息,输出函数表中只会保存输出函数的信息,而输入输出函数在PE文件中可能都位于.text这个节中。

02

IDA pro简介

本周分享的工具是IDA Pro 7.0。IDA Pro全称是交互式反汇编器专业版(Interactive Disassembler Professional),简称IDA,它是一种典型的递归下降反汇编器。IDA并非免费软件,但Hex-Rays公司提供了一个功能有限的免费版本。IDA是Windows,Linux或Mac OS X托管的多处理器反汇编程序 和调试程序,它提供了许多功能,是一款很强大的静态反编译工具。支持很多插件和python,利用一些插件可以提供很多方便的功能大大减少工作量,在CTF中,逆向和pwn都少不了它,更多强大的功能等待童鞋们自己去学习挖掘,三言两语讲不完。它支持数十种CPU指令集其中包括Intel x86,x64,MIPS,PowerPC,ARM,Z80,68000,c8051等等。 IDA pro7.0(绿色英文版)和 部分插件+ 《IDAPro权威指南第2版》已经上传至群文件,来源于: 吾爱破解论坛。论坛也有汉化版,英文原版本习惯了都一样。 看雪有一个 IDA pro插件收集区,大家有需要也可以去那找https://bbs.pediy.com/forum-53.htm

03
领券