有许多工具旨在帮助分析可移植的可执行文件。例如PE Explorer。我们可以将y <- matrix(1:300,100,3)
mv <- c(1,2,3)
rep = 200
valuematrix <- vector("list",ncol(y))
for (i in 1:ncol(y)) {
newmatrix <- replicate(rep,y[,i])
valuematrix[[i]] <- newmatrix
}
library(sp)
library(raster)
rasters <- setNames(lapply(valuematrix, function(x) raster(x)),
paste0('raster',1:length(mv)))
# Create a loop that will sample the rasters
library(dismo)
number = 100 # current number for random sample points number
numberv = c(100,150,200,250) # sample number vector i want to use
# samples below will hold only coordinate values:
samples <- setNames(lapply(rasters, function(x) randomPoints(raster(x),
n=number)),
paste0('sample',1:length(mv)))
samplevalues <- vector("list",ncol(y))
for (i in 1:ncol(y)) {
samplevalues[[i]] <- data.frame(samples[[i]],extract(rasters[[i]],
samples[[i]]))
}
文件加载到其中,并检查诸如节数,节对齐或特定节的虚拟地址之类的内容。
是否有任何类似的工具可以让我做同样的事情但是已经加载到内存中的可移植可执行文件?无法访问它的.exe
文件?
修改
也许我会尝试澄清我想要实现的目标。让我们说(像@ 0x90建议的那样)我有两个应用程序,甚至可能有三个应用程序。
app1.exe - 由用户执行,根据app3.exe创建新进程,并通过将app2.exe放入其中来修改其内存。
app2.exe - 由app1.exe注入app3.exe内存。
app3.exe - 用于创建新流程。
我有三个应用程序的来源。我只是通过注射/进程空洞的实际练习来尝试学习窗户内部。我在app1.exe中有一些错误导致:
.exe
我正试图找到一种方法来调试这种情况。我的想法是将磁盘上的PE与内存中的PE进行比较,并检查它是否正确。我很惊讶我找不到专为这样的建议而设计的工具。
答案 0 :(得分:1)
为清楚起见,您要检查的应用程序应称为App1,而将PE文件内容加载到内存中的应用程序称为App2。
据我所知,所有主要的反汇编程序都在处理文件。 这是因为App1将映射到App2的地址空间。
最简单的解决方案是将可执行文件从内存转储到磁盘。
如果您控制App2的来源,这一步很简单。
如果您没有,则需要攻击调试器,确定PE文件所在的确切内存范围,并使用调试器的功能将该内存范围转储到磁盘。