扫描进程中的字节
Scanning through bytes in a process
我目前正在开发一个程序,这个想法涉及扫描进程(dll被注入的进程)中的所有字节,如果在字节处发现函数,返回信息并继续扫描。
我唯一的问题是-扫描进程(当前进程)中的所有字节并检查扫描的字节是否为函数的最有效方法是什么?
在我看来,这是一个相当无望的目标。至少在第一次尝试中,我将钩住导出的函数(基于提到的DLL等,我假设这是在Windows上)。
如果您想扫描更多未导出的函数,下一步可能是反汇编代码并查找Call
指令,然后将每个指令的目标地址保存为函数的入口点。
实际上,这样做不太可能有很多好处——能够在不知道函数是/做的情况下记录函数,可能会生成大量输出,但很少有真正的信息。
扫描内存中字节的最有效方法是使用任何专门的处理器指令。
将数据放入处理器的数据缓存中,然后进行扫描。
如果可以的话,获取符合处理器字长的字节大小。例如,ARM7TDMI处理器具有32位字长,这意味着它一次可以获取4个字节。因此,处理器最有效的读取是4个字节的倍数。
相关文章:
- 从不同线程使用int64的不同字节安全吗
- boost::进程间消息队列引发错误
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 在UNIX系统中使用DIR查找文件的字节大小
- IPC使用多个管道和分支进程来运行Python程序
- 异常属于C++中的线程还是进程
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- WMI检测进程创建事件-c++
- std::当在256字节边界上写入整数时,流的奇怪行为
- 当比特(而不是字节)的顺序至关重要时的持久性
- 从文件中读取多个字节,并将它们存储在C++中进行比较
- 如何在文件中查找字节序列
- c++多进程编写一个唯一的文件
- 如何在C++中将字节数组发送到另一个进程
- 如何从子进程以 4096 字节拆分管道
- 在openMPI中向进程发送数据(以字节为单位)的最佳方式
- 扫描进程中的字节
- 如何获取Windows C++中进程(输入:进程ID或句柄)的每秒接收和发送网络字节数?