首页 > 其他分享 >十六进制字符串,转化为十六进制数据并write 写出去

十六进制字符串,转化为十六进制数据并write 写出去

时间:2024-02-20 16:47:05浏览次数:30  
标签:十六进制 string int 写出去 write 字符串 data

如果你想使用 write 函数以十六进制方式发送数据,你需要将十六进制数据转换为字节,并将字节作为参数传递给 write 函数。下面是一个示例程序,演示如何将十六进制字符串转换为字节,并使用 write 函数发送数据:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>

int main() {
    char hex_string[] = "595431325750FFFF0000000000000000";
    int len = strlen(hex_string) / 2;
    unsigned char byte_data[len];

    // 将十六进制字符串转换为字节对象
    for (int i = 0; i < len; i++) {
        sscanf(hex_string + (i * 2), "%2hhx", &byte_data[i]);
    }

    // 打开文件或套接字,例如:
    int sockfd = open("your_socket_file", O_WRONLY);
    if (sockfd == -1) {
        perror("open");
        return 1;
    }

    // 使用 write 函数发送数据
    ssize_t bytes_written = write(sockfd, byte_data, len);
    if (bytes_written == -1) {
        perror("write");
        close(sockfd);
        return 1;
    }

    // 打印发送的字节数
    printf("已发送字节数:%zd\n", bytes_written);

    // 关闭文件或套接字
    close(sockfd);

    return 0;
}

在上述代码中,我们首先将十六进制字符串转换为字节,然后使用 open 函数打开文件或套接字。然后,我们使用 write 函数将字节数据发送到文件或套接字中。最后,我们关闭文件或套接字。

另外 将十六进制数据转换为字符串

#include <stdio.h>
#include <string.h>

int main() {
    char hex_string[] = "595431325750FFFF0000000000000000"; // 你的十六进制字符串

    // 将十六进制字符串转换为字节对象
    unsigned char byte_data[100];
    int len = strlen(hex_string);
    for (int i = 0; i < len; i += 2) {
        sscanf(hex_string + i, "%2hhx", &byte_data[i / 2]);
    }

    // 将字节对象转换为字符串
    char string_data[100];
    for (int i = 0; i < len / 2; i++) {
        sprintf(string_data + i * 2, "%02x", byte_data[i]);
    }

    printf("转换后的字符串:%s\n", string_data);

    return 0;
}

标签:十六进制,string,int,写出去,write,字符串,data
From: https://www.cnblogs.com/zhouxingxing7920/p/18023429

相关文章

  • Nginx系列--rewrite的使用
    原文网址:​​Nginx系列--rewrite的使用_IT利刃出鞘的博客-CSDN博客​​简介本文介绍Nginx中rewrite的使用。分享Java技术星球(自学精灵):​​learn.skyofit.com​​语法rewriteregexURL[flag];flag标志位last:停止处理rewrite,并对配更改后的URI重新进行搜索(再从server......
  • 【XV6】 Copy-on-Write Fork for xv6
    代码:https://github.com/JasenChao/xv6-labs.gitCopy-on-WriteFork系统调用fork()会复制一个父进程的用户空间到子进程,一方面如果进程较大,复制需要很长的时间,另一方面复制的内存的大部分会被丢弃,造成浪费。题目要求实现写时复制COW来延迟fork的物理内存复制,子进程只创建了一个......
  • [MIT 6.S081] Lab: Copy-on-Write Fork for xv6
    Lab:Copy-on-WriteForkforxv6在这个实验中,我们要为xv6实现cowfork。Implementcopy-onwrite根据写时复制的方式,我们在复制页面的时候应该采用的是将父级的物理页面映射到子级的页面,因此我们需要修改kernel/vm.c中的uvmcopy,将页面复制修改为映射的方式,同时应当将......
  • CTFHub Writeup 彩蛋 ECB
    缘起最近做到做到这道题,flag[42:48]=aes_256_ecb_decode("c6e1d72b1102f9b96b20c1f00cc7a178d5b3f99193faaa60e53b45b9e644d782",key),自己用Py没解出来...importbinasciifromCrypto.CipherimportAESdata=binascii.unhexlify(b"c6e1d72b1102f9b96b20c1f00cc7a17......
  • dremio CTAS STORE AS && WITH SINGLE WRITER 简单说明
    dremioCTAS支持存储格式以及写入的文件数量(相对分区还说)参考CTAS格式CREATETABLE"s3"."91733d30-d1d2-46bf-8f2b-3c34d587a96c"STOREAS(type=>'text',fieldDelimiter=>',',lineDelimiter=>'')WITHSINGLE......
  • PoloarCTF WriteUp
    PoloarCTFWriteUpWebloginimportreimportrequestsres=""url="http://5077cb7c-84a4-4a16-84e9-8a4547f7efbc.www.polarctf.com:8090"foriinrange(2,30):username="202001{:02d}".format(i)password="202001{......
  • 并发容器【ConcurentHashMap、CopyOnWriteArrayList、阻塞队列、ArrayBlockingQueue】
    (并发容器)转自极客时间什么是并发容器?在JUC包中,有一大部分是关于并发容器的,如ConcurrentHashMap,ConcurrentSkipListMap,CopyOnWriteArrayList及阻塞队列。这里将介绍使用频率、面试中出现频繁的最高的ConcurrentHashMap和阻塞队列。注意:这里说到的容器概念,相当于我们理解中......
  • MIT 6.1810 Lab: Copy-on-Write Fork for xv6
    lab网址:https://pdos.csail.mit.edu/6.828/2022/labs/cow.htmlxv6Book:https://pdos.csail.mit.edu/6.828/2022/xv6/book-riscv-rev3.pdfImplementcopy-on-writefork这部分需要我们实现写时拷贝,题目给出解决方案为,当fork时,将父子进程的页表项都设置为只度,当发生写错误时,在处......
  • [pwn]hgame2024 week1 WriteUp
    目录1.EzSignIn2.ezshellcode3.EldenRandomChallenge1.EzSignIn签到题,直接nc2.ezshellcodechecksec,保护全开64位程序丢IDA跟进一下myread函数可以看到会执行写入的内存,但有两个点一是长度限制,可以通过整型溢出绕过,二是myread函数会检查写入的内容,必须为字母或数字看......
  • ReentrantLock源码分析、LockSuppor、ReentrantReadWriteLock、锁优化的方法
    ReentrantLock类图我们看一下重入锁ReentrantLock类关系图,它是实现了Lock接口的类。NonfairSync和FairSync都继承自抽象类Sync,在ReentrantLock中有非公平锁NonfairSync和公平锁FairSync的实现。在重入锁ReentrantLock类关系图中,我们可以看到NonfairSync和FairSync都继承自抽象......