optee打印二进制

这篇具有很好参考价值的文章主要介绍了optee打印二进制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、将如下代码移植到你的c文件

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

char *strcat(char *dest, const char *src)
{
    char *tmp = dest;

    while (*dest)
        dest++;
    while ((*dest++ = *src++) != '\0');
    return tmp;
}

static void i_to_string(char *buf, char x)
{
	char shiwei = x /16;
	char gewei = x %16;
	
	buf[0] = ' ';
	buf[1] = shiwei >= 10 ? (shiwei - 10 + 'a') : (shiwei + '0');
	buf[2] = gewei >= 10 ? (gewei - 10 + 'a') : (gewei + '0');
	buf[3] = 0;
}

#define PRINT_BUF_MAX			(32)
#define TAG_STRING_MAX			(32)
static void print_step_hex_data(void *tag, void *pbuf, uint32_t len)
{
	int i;
	char buf[PRINT_BUF_MAX*4 + TAG_STRING_MAX] = {0};
	char temp_buf[4] = "HHH";

	memcpy(buf, (char *)tag, sizeof(buf));

	for (i=0;i<len;i++) {
		if (i % 16 ==0) {
			strcat(buf,"\n");
		}
		i_to_string(temp_buf, *((char *)pbuf + i)&0xff);
		strcat(buf, temp_buf);
	}
	strcat(buf,"\n");

	EMSG("%s", buf);
}

void print_hex_data(void *tag, void *pbuf, uint32_t len)
{
	int i;
	uint32_t block;
	uint32_t remainder;
	void *p;
	char tag_buf[TAG_STRING_MAX + 6] = {0};
	char tail_buf[6+4] = {0};

	p = pbuf;
	if (len<=PRINT_BUF_MAX) {
		memcpy(tag_buf,tag,TAG_STRING_MAX);
		strcat(tag_buf, " = ");
		return print_step_hex_data(tag_buf, p, len);
	} else {
		block = len / PRINT_BUF_MAX;
		remainder = len % PRINT_BUF_MAX;
		for (i=0;i<block;i++) {
			memcpy(tag_buf,tag,TAG_STRING_MAX);
			tail_buf[0] = '[';
			tail_buf[1] = i / 10 + '0';
			tail_buf[2] = i % 10 + '0';
			tail_buf[3] = ']';
			tail_buf[4] = 0;
			strcat(tag_buf, tail_buf);
			print_step_hex_data(tag_buf, p, PRINT_BUF_MAX);
			p = (char *)p + PRINT_BUF_MAX;
		}
		if (remainder) {
			memcpy(tag_buf,tag,TAG_STRING_MAX);
			tail_buf[0] = '[';
			tail_buf[1] = i / 10 + '0';
			tail_buf[2] = i % 10 + '0';
			tail_buf[3] = ']';
			tail_buf[4] = 0;
			strcat(tag_buf, tail_buf);
			print_step_hex_data(tag_buf, p, remainder);
		}
	}
}

2、 打印二进制的方法如下所示
print_hex_data("Cipher Data : ", tmp_buf, tmp_sz);
print_hex_data("Plaintext Data : ", out_buf, out_sz);文章来源地址https://www.toymoban.com/news/detail-557758.html

到了这里,关于optee打印二进制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言二进制数据和16进制字符串互转

    知识点:结构体中的“伸缩型数组成员”(C99新增) C99新增了一个特性:伸缩型数组成员(flexible array member),利用这项特性声明的结构,其最后一个数组成员具有一些特性。第1个特性是,该数组不会立即存在。第2个特性是,使用这个伸缩型数组成员可以编写合适的代码,就

    2024年02月13日
    浏览(45)
  • C语言文本模式和二进制模式

    本篇文章介绍一下C语言的文本模式和二进制模式 从宏观上看,无论是文本文件还是二进制文件,文件中保存的都是 0和1的序列 ,因为磁盘只有这两种状态。不同的文件只是对0、1序列的解释不同, 如果文件内容是以字符编码的方式保存到文件中的 ,无论是以哪种编码方式,

    2024年02月05日
    浏览(40)
  • 【c语言】二进制文件的读写操作

    创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡𖥦)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 🔥c语言系列专栏:c语言之路重点知识整合 🔥 给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ 本文基

    2024年02月12日
    浏览(44)
  • Python中二进制十进制转换

            hello大家好,今天我想和大家分享一下在Python中进制转换加减法的方法。         比如现在我们需要求100 + 10,然后需要将结果110以二进制的形式返回,又或者我们现在有一个小需求,就是要计算二进制1010和二进制1011的和是多少,然后依旧以二进制的形式返回

    2024年02月16日
    浏览(63)
  • python十进制转二进制方法详解

      在 Python中,十进制数可以转换成二进制数。例如: 但是,十进制数不是直接转换成二进制,而是先转换成二进制数,再转换成十进制。接下来我们来看看具体的实现方法: 首先我们来看一个例子: 上面代码中,使用了循环遍历的方法。从这个例子中我们可以发现,需要遍

    2023年04月19日
    浏览(111)
  • 【Python 千题 —— 基础篇】进制转换:十进制转二进制

    题目描述 计算机底层原理中常使用二进制来表示相关机器码,学会将十进制数转换成二进制数是一个非常重要的技能。现在编写一个程序,输入一个十进制数,将其转换成二进制数。 输入描述 输入一个十进制数。 输出描述 程序将输入的十进制数转换为二进制数,并输出其

    2024年02月07日
    浏览(81)
  • 【C语言】求二进制位中一的个数

    原题链接:牛客网 题目内容: 写一个函数返回参数二进制中 1 的个数,负数使用补码表示。 比如: 15    0000 1111    4 个 1 方法一: NumberOf1函数的实现比较简单,它使用了一个循环,不断将n除以2,并判断余数是否为1。如果余数为1,则说明n的二进制表示中最低位为1,计

    2024年02月09日
    浏览(37)
  • Python读写二进制文件

    Python 读写文件的二进制数据需要使用到struct模块,进行C/C++与Python数据格式的转换。 struct模块中最常用的函数为pack和unpack,用法如下: 函数 return explain pack(fmt,v1,v2…) string 按照给定的格式(fmt),把数据转换成字符串(字节流),并将该字符串返回. pack_into(fmt,buffer,offset,v1,v2…) No

    2024年02月08日
    浏览(47)
  • 【初阶C语言】操作符1--对二进制的操作

    前言:本节内容介绍的操作符,操作的对象是二进制位。所以前面先介绍整数的二进制位 1.二进制介绍 (1)整数的二进制表示形式有三种:原码、反码和补码。 (2)原码、反码和补码的长度有数据类型来决定,如整数,就是四个字节,转化后是三十二位比特位,所以一个整

    2024年02月09日
    浏览(40)
  • PYTHON : 二进制 、 八进制 、十六进制的转换和输出

    十进制转换成其他进制 保存为文本串 二进制 bIn() 八进制 oct() 十六进制 hex() 不输出前缀 使用format函数 如果不想输出进制前面的 前缀符号 , 这时我们就要使用format函数 在这里我们要注意 , 二进制和八进制 的再format里的 符号是‘b’,‘o’ 而十六进制format 里的符

    2023年04月09日
    浏览(78)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包