<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zmnbehappy的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zmnbehappy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zmnbehappy]]></copyright><item><title><![CDATA[工作区恢复的思考]]></title><link>https://blog.youkuaiyun.com/zmnbehappy/article/details/126278834</link><guid>https://blog.youkuaiyun.com/zmnbehappy/article/details/126278834</guid><author>zmnbehappy</author><pubDate>Thu, 11 Aug 2022 09:47:29 +0800</pubDate><description><![CDATA[工作环境恢复]]></description><category></category></item><item><title><![CDATA[RSA公钥每次签名得到的结果都一样？]]></title><link>https://blog.youkuaiyun.com/zmnbehappy/article/details/125915172</link><guid>https://blog.youkuaiyun.com/zmnbehappy/article/details/125915172</guid><author>zmnbehappy</author><pubDate>Thu, 21 Jul 2022 16:26:41 +0800</pubDate><description><![CDATA[这里记录下，RSA对于同一数据块签名一致的原因是使用的填充算法。涉及PKCS#1_5、PSS。]]></description><category></category></item><item><title><![CDATA[openssl--asn1parse用法]]></title><link>https://blog.youkuaiyun.com/zmnbehappy/article/details/125914379</link><guid>https://blog.youkuaiyun.com/zmnbehappy/article/details/125914379</guid><author>zmnbehappy</author><pubDate>Thu, 21 Jul 2022 16:00:56 +0800</pubDate><description><![CDATA[asn1(AbstractSyntaxNotationOne),是描述数据的表示、编码、传输、解码的灵活的记法。asn1的语法描述了数据的封装方式，并且规范的使用范围比较广。二进制内容还可以使用base64来表示，这样的文件一般文件后缀名为pem。消息协议转换为二进制编码，一般使用der编码协议，der编码是一个三元组（type+length+value）比如我们定义一个消息的协议，包含消息id，消息内容，那么用asn1可以表示为。-out输出文件，默认为der格式。...]]></description><category></category></item><item><title><![CDATA[vim 编辑二进制文件]]></title><link>https://blog.youkuaiyun.com/zmnbehappy/article/details/125912303</link><guid>https://blog.youkuaiyun.com/zmnbehappy/article/details/125912303</guid><author>zmnbehappy</author><pubDate>Thu, 21 Jul 2022 14:53:22 +0800</pubDate><description><![CDATA[vim编辑二进制文件]]></description><category></category></item><item><title><![CDATA[openssl--生成RSA公钥和私钥]]></title><link>https://blog.youkuaiyun.com/zmnbehappy/article/details/125911208</link><guid>https://blog.youkuaiyun.com/zmnbehappy/article/details/125911208</guid><author>zmnbehappy</author><pubDate>Thu, 21 Jul 2022 14:30:52 +0800</pubDate><description><![CDATA[openssl--生成RSA密钥对]]></description><category></category></item><item><title><![CDATA[full mesh]]></title><link>https://blog.youkuaiyun.com/zmnbehappy/article/details/125619887</link><guid>https://blog.youkuaiyun.com/zmnbehappy/article/details/125619887</guid><author>zmnbehappy</author><pubDate>Tue, 05 Jul 2022 15:02:09 +0800</pubDate><description><![CDATA[FULL MESH是一种网络连接形式，即所有结点之间都直接连接的形式。]]></description><category></category></item><item><title><![CDATA[Comparison of TLS implementations]]></title><link>https://blog.youkuaiyun.com/zmnbehappy/article/details/124862855</link><guid>https://blog.youkuaiyun.com/zmnbehappy/article/details/124862855</guid><author>zmnbehappy</author><pubDate>Thu, 19 May 2022 14:38:46 +0800</pubDate><description><![CDATA[由于不能直接访问wiki，找了个镜像页面。
https://infogalactic.com/info/Comparison_of_TLS_implementations

]]></description><category></category></item><item><title><![CDATA[optee--调试TEE core]]></title><link>https://blog.youkuaiyun.com/zmnbehappy/article/details/124690177</link><guid>https://blog.youkuaiyun.com/zmnbehappy/article/details/124690177</guid><author>zmnbehappy</author><pubDate>Tue, 10 May 2022 15:54:40 +0800</pubDate><description><![CDATA[根据手册说明，为了使用gdb调试TEE core，在禁用优化的情况下，不必指定特殊参数。需要有四个console：

QEMU console
NW UART console
SW UART console
GDB console

前三个console是测试xtest时介绍过的，最后一个需要我们手动启动。
启动qemu。
这里需要注意，编译或启动需要禁用CFG_CORE_ASLR
$ cd build
# make run-only also works if you don't want to rebu]]></description><category></category></item><item><title><![CDATA[Oberon系统]]></title><link>https://blog.youkuaiyun.com/zmnbehappy/article/details/124289506</link><guid>https://blog.youkuaiyun.com/zmnbehappy/article/details/124289506</guid><author>zmnbehappy</author><pubDate>Wed, 20 Apr 2022 09:43:29 +0800</pubDate><description><![CDATA[介绍
oberon是平行于*unix的系统，使用与其同名的语言开发，其作者是Niklaus Wirth。
native oberon一般是支持x86、arm的工程。
project oberon一般是支持在FPGA上的工程。
测试

下载qemu官网上的镜像。
Ubuntu安装qemu-system-x86

my@ubuntu:~/oberon$ sudo apt install qemu-system-x86


直接运行

my@ubuntu:~/oberon$ cat run 
#!/bin/sh
]]></description><category></category></item><item><title><![CDATA[win10导出安装程序列表]]></title><link>https://blog.youkuaiyun.com/zmnbehappy/article/details/124143615</link><guid>https://blog.youkuaiyun.com/zmnbehappy/article/details/124143615</guid><author>zmnbehappy</author><pubDate>Wed, 13 Apr 2022 11:47:21 +0800</pubDate><description><![CDATA[0x00 起因
公司要求提交办公电脑已经安装的软件列表。
0x01实现方法

以管理员运行powershell
直接运行命令：Get-ItemProperty -Path HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall*  | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -AutoSize &gt; ]]></description><category></category></item><item><title><![CDATA[__attribute__((weak)) 简介及作用]]></title><link>https://blog.youkuaiyun.com/zmnbehappy/article/details/123676522</link><guid>https://blog.youkuaiyun.com/zmnbehappy/article/details/123676522</guid><author>zmnbehappy</author><pubDate>Thu, 24 Mar 2022 08:54:16 +0800</pubDate><description><![CDATA[提示：文章写完后，目录可以自动生成，如何生成可参考右边的帮助文档

文章目录前言弱符号是什么？示例参考

前言
最新在梳理流程时看到有一个函数使用了weak修饰属性，以前只是听同事提起过并不得知，所以写一篇文章以作记录。

弱符号是什么？
若两个或两个以上全局符号（函数或变量名）名字一样，而其中之一声明为weak属性，则这些全局符号不会引发重定义错误。链接器会忽略弱符号，去使用普通的全局符号来解析所有对这些符号的引用，但当普通的全局符号不可用时，链接器会使用弱符号。当有函数或变量名可能被用户覆盖时，该函数.]]></description><category></category></item><item><title><![CDATA[lua加载luasocket]]></title><link>https://blog.youkuaiyun.com/zmnbehappy/article/details/107228046</link><guid>https://blog.youkuaiyun.com/zmnbehappy/article/details/107228046</guid><author>zmnbehappy</author><pubDate>Thu, 09 Jul 2020 15:06:38 +0800</pubDate><description><![CDATA[lua加载luasocket
0x00缘起
最近在使用lua处理相关问题，在测试代码时遇到了luasocket的库的是用。
源码编译，没有什么大问题，问题出现在库的使用上，require加载失败
0x01 现象
socket = require("socket")
stdin:1: module 'socket' not found:
        no field package.preload['socket']
        no file './socket.lua'
        no fi]]></description><category></category></item><item><title><![CDATA[kvm虚拟机映射物理CPU]]></title><link>https://blog.youkuaiyun.com/zmnbehappy/article/details/107058192</link><guid>https://blog.youkuaiyun.com/zmnbehappy/article/details/107058192</guid><author>zmnbehappy</author><pubDate>Wed, 01 Jul 2020 10:43:07 +0800</pubDate><description><![CDATA[kvm虚拟机映射物理CPU
本文简单记录下kvm虚拟机使用物理CPU，不在使用qemu模拟

关闭虚拟机
编辑虚机xml
sudo virsh edit you-vm-domain-name
增加cpu的配置项

&lt;cpu mode='host-passthrough' &gt;
&lt;/cpu&gt;


重新启动，检查是否成功

cat /proc/cpuinfo
processor       : 0
vendor_id       : xxxxxxx
cpu family      : 6
]]></description><category></category></item><item><title><![CDATA[c语言类型探索：unsigned long]]></title><link>https://blog.youkuaiyun.com/zmnbehappy/article/details/107057716</link><guid>https://blog.youkuaiyun.com/zmnbehappy/article/details/107057716</guid><author>zmnbehappy</author><pubDate>Wed, 01 Jul 2020 10:20:25 +0800</pubDate><description><![CDATA[c语言类型探索：unsigned long
0x00 缘起
目前在做mib相关的工作，oid节点的类型是counter64，支持私有mib的类型使用的是unsigned long，在考虑是不是够用，组内给出的结论是我们的平台上unsigned long和unsigned long long是相同位宽，即都为8字节。感觉自己基本功不扎实，故才有了这次探索
0x01 测试
事实胜于雄辩，我还是在设备上做下测试吧。结果显示的却是如此，unsigned long和unsigned long long是相同位宽，即都]]></description><category></category></item><item><title><![CDATA[putty公钥登录问题]]></title><link>https://blog.youkuaiyun.com/zmnbehappy/article/details/107040985</link><guid>https://blog.youkuaiyun.com/zmnbehappy/article/details/107040985</guid><author>zmnbehappy</author><pubDate>Tue, 30 Jun 2020 13:50:48 +0800</pubDate><description><![CDATA[putty公钥登录问题
上一篇博文介绍了使用Putty免密码登录，我后面试了另一台虚拟机，结果putty显示错误server refused our key（在linux下则表现为仍需要输入密码），搜索了下，很多人都遇到这个问题，大致有三种原因：
1、.ssh文件夹权限错
.ssh 以及其父文件夹（root为/root，普通用户为Home目录）都应该设置为只有该用户可写（比如700）。
以下为原因：
ssh服务器的key方式登录对权限要求严格。对于客户端: 私钥必须为600权限或者更严格权限(400), 一]]></description><category></category></item><item><title><![CDATA[关于c++工厂模板宏的分析]]></title><link>https://blog.youkuaiyun.com/zmnbehappy/article/details/105527739</link><guid>https://blog.youkuaiyun.com/zmnbehappy/article/details/105527739</guid><author>zmnbehappy</author><pubDate>Wed, 15 Apr 2020 09:59:55 +0800</pubDate><description><![CDATA[0x00 缘起
今天有个同事M君在技术群里发了一个如下c++的问题：
在如下代码中
#define REGISTER_FACTORY(FACTORY, BASE)                    \ 
  void forceStaticLink##FACTORY() {}                                                            ...]]></description><category></category></item><item><title><![CDATA[svn修改文件属性]]></title><link>https://blog.youkuaiyun.com/zmnbehappy/article/details/105489738</link><guid>https://blog.youkuaiyun.com/zmnbehappy/article/details/105489738</guid><author>zmnbehappy</author><pubDate>Mon, 13 Apr 2020 15:41:38 +0800</pubDate><description><![CDATA[0x00 缘起
在svn add或svn diff操作之后经常会出现被误认为是二进制文件的情况，日后不方便查看差异。下文以xml文件性质为例进行实践，如果为其他类型，查看对应的mime-type修改即可。
确认文件属性方法
可以通过svn命令来获取文件属性，完整的命令为
svn propget svn:mime-type 'path-to-file'
或
svn plist -v  'path-t...]]></description><category></category></item><item><title><![CDATA[Linux Kernel代码艺术——数组初始化]]></title><link>https://blog.youkuaiyun.com/zmnbehappy/article/details/104834840</link><guid>https://blog.youkuaiyun.com/zmnbehappy/article/details/104834840</guid><author>zmnbehappy</author><pubDate>Fri, 13 Mar 2020 10:06:06 +0800</pubDate><description><![CDATA[前几天看内核中系统调用代码，在系统调用向量表初始化中，有下面这段代码写的让我有点摸不着头脑：
const sys_call_ptr_t sys_call_table[__NR_syscall_max+1] = {
    /*
     * Smells like a compiler bug -- it doesn't work
     * when the &amp; below is re...]]></description><category></category></item><item><title><![CDATA[c语言-柔性数组初始化]]></title><link>https://blog.youkuaiyun.com/zmnbehappy/article/details/104830542</link><guid>https://blog.youkuaiyun.com/zmnbehappy/article/details/104830542</guid><author>zmnbehappy</author><pubDate>Fri, 13 Mar 2020 09:31:50 +0800</pubDate><description><![CDATA[起因
在做项目时，遇到相似结构，差异在一个成员，这个成员想表达可变数组，数据结构如下
struct A {
	int len;
	float e[10];
};
struct B {
	int len;
	float e[20];
};

目的：

合并两个结构，用同一个结构表达
初始化变量，或数组

测试
首先合并AB两个结构不难，可以使用柔性数组
struct AB {
	int len;
	...]]></description><category></category></item><item><title><![CDATA[c语言-整形数组标量]]></title><link>https://blog.youkuaiyun.com/zmnbehappy/article/details/104788847</link><guid>https://blog.youkuaiyun.com/zmnbehappy/article/details/104788847</guid><author>zmnbehappy</author><pubDate>Wed, 11 Mar 2020 08:13:22 +0800</pubDate><description><![CDATA[起因
在做项目时，遇到了一连串整形数字，我想将作为标量，并赋于指针。
实践
测试如下代码
struct A {
	int len;
	int *p;
};
struct A a={3,{1,2,3}};

编译会出现失败
gcc warning: braces around scalar initializer

深入
搜索之后，发现这个应该是个人理解的问题。
可以如下
struct A a={3...]]></description><category></category></item></channel></rss>