吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1040|回复: 6
收起左侧

[求助] c++ 打开文件读取shellcode异或问题

  [复制链接]
xiaochen666 发表于 2022-5-4 13:36
我这么写异或出来的代码多了四倍,怎么样让他一组一组的异或呢
\xfc  异或
而不是
\ 异或
x 异或
f 异或
c 异或

[C++] 纯文本查看 复制代码
#include <Windows.h>
#include <stdio.h>
#include <iostream>
using namespace std;
  
int main(int argc, char* argv[]) {
      
    HANDLE cf = CreateFileA("payload.c", GENERIC_ALL, 0, NULL, OPEN_ALWAYS, 0, NULL);
    if (cf == INVALID_HANDLE_VALUE)
    {
        printf("error");
        return -1;
    }
    DWORD dwSize = 0;
    DWORD dRead;
    dwSize = GetFileSize(cf, 0);
    unsigned char* buf = new unsigned char[dwSize+1]{};
    ReadFile(cf, buf, dwSize, &dRead ,0);
  
    for(int i=0; i<dwSize; i++)
    {
        buf[i] = buf[i] ^ 10;
        printf("\\x%x", buf[i]);
    }
    
  
    return 0;
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

seawaycao 发表于 2022-5-4 19:26
没有明白楼主的意思
 楼主| xiaochen666 发表于 2022-5-4 19:45
苏紫方璇 发表于 2022-5-4 23:15
 楼主| xiaochen666 发表于 2022-5-4 23:43
苏紫方璇 发表于 2022-5-4 23:15
payload.c的文件内容呢

msf生成的  纯shellcode   \xfc\x78\x53.....

点评

中间循环改成这个 [mw_shl_code=cpp,true]char str[3] = { 0 }; unsigned char c; for (int i = 0; i < dwSize; i+=4) { //跳过\x str[0] = buf; str[1] = buf; sscanf(str, "%x", &c); c =  详情 回复 发表于 2022-5-5 00:04
苏紫方璇 发表于 2022-5-5 00:04
xiaochen666 发表于 2022-5-4 23:43
msf生成的  纯shellcode   \xfc\x78\x53.....

中间循环改成这个
[C++] 纯文本查看 复制代码
char str[3] = { 0 };
	unsigned char c;

	for (int i = 0; i < dwSize; i+=4)
	{
		//跳过\x
		str[0] = buf[i + 2];
		str[1] = buf[i + 3];
		sscanf(str, "%x", &c);
		c = c ^ 10;
		printf("\\x%02x", c);
	}
 楼主| xiaochen666 发表于 2022-5-5 01:03
苏紫方璇 发表于 2022-5-5 00:04
中间循环改成这个
[mw_shl_code=cpp,true]char str[3] = { 0 };
        unsigned char c;

解决了,太谢谢了师傅,弄了一周了终于解决,我帖子有个悬赏,你去填一下师傅 我给你采纳
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 11:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表