摘要:
PE头在进程装载的时候使用格式比较固定,从中找到需要的信息后不必过多关注,只需要找到还原后的节区体即可。 从文件中的EntryPoint找到进程入口: 占用不需要的元素,其在节区如下区域中插入代码: 蓝色框中是可选头所占区域,其余的到16F为多余的区域。 这条命令将ESI所指的区域中的27个Dwor 阅读全文
摘要:
对两个PE文件进行对比分析: 可以发现,对各个结构体进行了重叠。首先观察PE头,DOS存根被省掉。 从3C地址处,找到NT头地址,在10H处。即DOS头和NT头进行了重叠。 文件头倒数第二个元素(SizeOfOptionalHeader)的值为148H。 由值10B找到可选头,下面一行即为Entry 阅读全文
摘要:
PE重定位 使得硬编码在程序中的内存地址随当前加载地址的变化而变化就是PE重定位. 若不添加重定位,而加载时内存地址被占用,则会出现"内存地址引用错误",使得程序异常终止. PE重定位的操作原理: 查找硬编码地址需要用到重定位表(Relocation Table),它是记录硬编码地址偏移的列表.是P 阅读全文
摘要:
实验中,需要连接在一个局域网中才能使用,实际上存在不在一个局域网中就可以远程登录的软件,还没有研究过. 在cmd中输入 mstsc 就可以打开Windows自带的软件.需要在我的电脑-属性中开启远程桌面.可以看到图形界面. 需要在服务器上创建账号,将账户加入到远程桌面组或者telnet组中. 或者直 阅读全文
摘要:
PE重定向 向进程的虚拟内存加载PE文件时,文件会被加载到PE头的ImageBase所指向的地址处时.存在地址被占用的风险. EXE文件会优先被加载到内存,所以不用担心重定位问题. 在Windows Vista之后的版本引入了ASLR安全机制,运行程序exe都会被加载到不同的地址. 此处应注意(在w 阅读全文
摘要:
对UPX压缩的Notepad.exe程序进行分析. 如图分析,第一个节区UPX0,可以看出,VirtualSize的值为10000H,而SizeOfRawData为0. 第一个节区内目前是没有任何数据的,但是虚拟地址的大小却为10000H,可以推测,它后面会放入数据 即解压后的数据. 跟踪程序执行的 阅读全文
摘要:
TinyPe是为了挑战做出更小的PE文件而出现的,现在对它进行分析.从书上的网站中找到网址并下载. 可以看到这个PE文件的大小已经被减少到了84H字节. 且可以正常运行: PE知识可知:DOS头的大小为40字节,NT头为F8字节,此处必然进行了删减和覆盖. 先观察DOS头,由于DOS头的数据中,重要 阅读全文
摘要:
EAT 是一种核心机制,使不同的应用程序可以调用库文件中提供的函数.PE中的结构体Image_Export_Directory保存着导出信息,且只有一个结构体. DataDirectory[0]结构体中的第一个元素是地址,第二个是大小. 有下面几个重要的成员: 1#.NumberOfFunction 阅读全文
摘要:
每个账户都有自己唯一的SID(Security Identifier). 可以将前面的数值理解为一台计算机的唯一值,后面的500是用户ID(UID). 在Windows中系统管理员的UID为500.任何普通用户的UID是从1000开始的. 密码存储的位置 : C:\Windows\system32\ 阅读全文
摘要:
DLL(Dynamic Linked Library) 加载DLL的方式实际有两种:一种是显示链接(Explicit Linking),程序使用DLL时加载,函数使用完毕时再释放内存; 一种是隐式链接(Implicit Linking),程序开始时就加载DLL,程序终止时再释放占用的内存. 而IAT 阅读全文