首页 > 其他 > 详细

看到一段代码,留个脚印2_ C ++ 读字节集

时间:2020-03-31 18:48:53      阅读:76      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 

 前几看了个找基址的视频教学,里面有一段用易语言读取一段字节集(大约20MB的空间)的代码,于是在网上搜了,发现了有这么一段代码:

#include <iostream>
#include <stdio.h>
#include <windows.h>
#include <iomanip>
using namespace std;

byte * nc_dncbyte(DWORD pid, DWORD ShouDiZhi, DWORD Size)
{
    HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS, 0, pid);
    byte * p = new byte[ Size ];
    ReadProcessMemory(handle, (LPCVOID)ShouDiZhi, p, Size, 0);
    return p;
}   

void main()
{
    byte * pbuffer = nc_dncbyte(2056, 0x0D0A4318, 10);
   
    printf("%02X,%02X,%02X,%02X", buff[0], buff[1], buff[2], buff[3]);delete []pbuffer;
}    

运行程序后显示:技术分享图片

 

 

 于是改到C++ 输出,代码加上:

for (int i = 0; i <= 200; i++)
    {

        cout << pbuffer[ i ] << " ";
    
    }
    cout << endl;

打印出的效果技术分享图片

 

 

 这应该打印的不是十六进制,想到cout 输出十六进制要加上 hex,但是不行,在网上查了下,还得这样

for (int i = 0; i <= 200; i++)
    {

        cout << hex << int (pbuffer[ i ]) << ", "; 设置十六进制显示数值显示
} cout << endl;

效果:技术分享图片

 

 还有问题,内在为00的只取一位,继续找资料,然后完整代码为:

#include <iostream>
#include <stdio.h>
#include <windows.h>
#include <iomanip>
using namespace std;

byte * nc_dncbyte(DWORD pid, DWORD ShouDiZhi, DWORD Size)
{
    HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS, 0, pid);
    byte * p = new byte[ Size ];
    ReadProcessMemory(handle, (LPCVOID)ShouDiZhi, p, Size, 0);
    return p;
}

void main()
{
    byte * pbuffer = nc_dncbyte(3760, 0x0D0A4318, 10);
    for (int i = 0; i < 200; i++)
    {
        cout.width(2);//占宽2列
        cout.fill(0);//不足2位时前面用0补齐,多于2位时按实际倍数显示
        cout << setiosflags(ios::uppercase) << hex << int (pbuffer[ i ]) << " "; // setiosflags(ios::uppercase) 设置十六进制显示数值字母大写

    }
    cout << endl;
    for (int a = 0; a < 4; a++)
    {
        printf("%02X,", pbuffer[a]);
    }
    cout << endl;
    delete []pbuffer;
}

最终效果如下:技术分享图片

 

 OK,任何完成技术分享图片,再然后就是要把这些读取的字节集输出为exe程序。

 

看到一段代码,留个脚印2_ C ++ 读字节集

原文:https://www.cnblogs.com/hsoftk/p/12606629.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!