PE文件中找导出表】的更多相关文章

导出表: typedef struct _IMAGE_EXPORT_DIRECTORY { DWORD Characteristics; // 未使用,总为0 DWORD TimeDateStamp; // 文件创建时间戳 WORD MajorVersion; // 未使用,总为0 WORD MinorVersion; // 未使用,总为0 DWORD Name; // **重要 指向一个代表此 DLL名字的 ASCII字符串的 RVA DWORD Base; // **重要 函数的起始序号 D…
前言 PE文件中的输入表含有三个重要结构IID,IDT,IAT.PE文件为需要加载的DLL文件创建一个IID结构,一个DLL与一个IID对应.IDT是输入名称表,IAT输入地址表,在没有绑定输入的情况下磁盘中的文件IDT与IAT相同.如果有绑定输入的话因为绑定输入的函数其磁盘文件中的IAT项就已经是对应函数的地址了,所以IDT与IAT就不同了. 函数隐式调用 我们一般在调用函数的时候都是直接用函数的名称,例如MessageBox()这种其在底层汇编指令上并不是直接调用MessageBox()函数…
背景 之前说过直接向类HelloWorld.exe的可执行文件添加一个MessageBox弹窗, 但有时候, 需要添加的内容太多了, 因为数据与代码一起插入, 以至于可执行文件本身没有足够的空闲空间存放这些内容时, 就需要添加一个Section.   确认节区头后面还有空间 用工具查看一下最后一个节区头后面是否还有多余的空间, 一般情况都会有的. 但若没有的话, 就要移动节区头后面的文件内容, 这个比较复杂, 在这里不说. 一般会结合PE View 和 WinHex 这两个工具, 如之前的Hel…
转自:https://blog.csdn.net/tiankong_/article/details/77234726#commentBox 1.题目 给定a.b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a.b文件共同的url? 2.思考过程 //我看见这个题就啥也没想到,想不到哈希啊... 可以使用哈希,对a文件中的所有进行遍历,再对b进行遍历,但是由于文件过大,并且还要给哈希表分配空间,所以一次性建立哈希表希望不大. 3.解决办法 50亿*64B=320…
// mem.cpp : 定义控制台应用程序的入口点. //PE文件从文件加载到内存,再从内存读取,然后存盘到文件 #include "stdafx.h" #include <windows.h> #include <winnt.h> //#define PATH "C:\\Windows\\System32\\notepad.exe" #define PATH "C:\\Users\\Administrator\\Desktop\…
获得的新知识: 1.kernel32.dll,user32.dll,ntdll.dll等一些dll在同一个PC环境下的映射到虚拟内存基址是一样的. 2.在win8以上系统上,更改PE文件的入口点要大于SizeOfHeaders(在可选文件头中),否则会报错无法运行. 1.实现原理 PE可选文件头有一个AddressOfEntryPoint,更改这个值指向自己代码,执行完自己代码再跳转到原来入口点. 2.实验过程 1.字节的代码 shellcode: 6A 00 6A 00 6A 00 E8 __…
/proc/PID/maps提供了进程的memory layout,下面脚本根据给定地址找出相应的库名: #!/usr/bin/python from __future__ import print_function import sys import numpy as np import pandas as pd import matplotlib.pyplot as plt import bisect import re import lp_util VERBOSE = False def…
在IDEA中maven作为一个内置的工具,不需要任何配置就可以使用,点开settings 可以看到有三个maven可以选择 C:/apache-maven-3.5.3这个maven当然是我自己安装的,至于Bundled(Maven 3)和Bundle(Maven 2)都是IDEA自带的 打开IDEA安装目录下的plugin可以看到这里有个maven目录,点进去会发现有maven2和maven3,idea默认用的就是这里的maven. 而我们无论在哪都能使用的mvn命令,这个当然还是需要配置环境变…
今天做了一个读取PE文件导出表的小程序,用来学习. 参考了<Windows PE权威指南>一书. 首先, PE文件的全称是Portable Executable,可移植的可执行的文件,常见的EXE.DLL.OCX.SYS.COM都是PE文件. 我们知道,一个Windows程序,它所实现的所有功能最终几乎都是调用系统DLL提供的API函数.要使用任何一个DLL所提供的函数,我们需要将它导入,也就是用到了导入表.然而对于那些提供了被导出的函数的DLL程序来说,他们必须使用导出表将函数导出,之后别的…
0x1 PE文件与免杀思路 基于PE文件结构知识的免杀技术主要用于对抗启发式扫描. 通过修改PE文件中的一些关键点来达到欺骗反病毒软件的目的. 修改区段名 1.1 移动PE文件头位置免杀 工具:PeClean SizeOfOptionalHeader字段来描述扩展头的大小,恒定值为0xE0. 某些程序直接使用0xE0对PE文件进行处理,对于修改过的程序会被识别为非PE文件. 1.2 导入表移动免杀 通过修改程序里导入表ThunkValue值实现. 1)通过ThunkValue的偏移地址,找到AP…