我正在处理一个 ASM 项目,我想知道原始内存中可移植可执行程序的入口点。我所说的原始内存是指静态内存,就像我用十六进制编辑器编辑原始 .exe 文件一样。从程序的 PE 表中,我可以查找名为“EntryPoint:”的条目,但该条目一旦加载到内存中就包含程序的入口点!我需要找到程序将在磁盘中的原始内存中查找第一条指令的位置。有些程序从 .text 部分的第一个地址开始执行,这很常见但并不总是发生,这就是为什么我想知道入口点。
为了解决这个问题,我使用了 Windows API 中的 MapViewOfFile 函数并在内存中加载了一个 example.exe 程序,然后查找其原始内容。
我目前正在使用 Radasm 与 MASM 合作
谢谢 !
我有以下代码:
Class Chain
Run Code Online (Sandbox Code Playgroud)
同
char* c;
Run Code Online (Sandbox Code Playgroud)
作为唯一的公共因素
istream& operator>>(istream& i, Chain& s) {
delete [] s.c;
const int L = 256;
char *t = new char[L];
i.getline(t,L);
s.c = t;
return i;
}
ostream& operator<<(ostream& o, Chain s) {
o << s.c;
return o;
}
#include <iostream>
#include "Chain.h"
using namespace std;
int main(){
Chain id;
cin >> id;
cout << id;
cout << id;
Run Code Online (Sandbox Code Playgroud)
在Xubuntu(最新版本)上的Eclipse IDE下运行代码后,我收到以下错误:
[...]双重免费或损坏中的错误(上):0x00000000008fd290***
可能有什么不对?
我正在尝试使用DD-MMM-YY格式的php存储实际的sysdate.我想使用该日期在oracle sql server中运行插入.
谢谢