0%

ESXi专为运行虚拟机、最大限度降低配置要求和简化部署而设计。只需几分钟时间,客户便可完成从安装到运行虚拟机的全过程,特别是在下载并安装预配置虚拟设备的时候。

使用官方下载的镜像文件, 默认情况会有一些适应性限制, 平时我们用来个人学习使用, 这些限制就比较多余. 这里记录一下能够修改的一些限制的方法.

阅读全文 »

数据抓包分析在软件开发中是经常出现的一种活动, Wireshark 在数据包分析领域是绝对的一哥, 支持的数据协议数不胜数. 如今这些协议中很大一部分更是逐渐使用 TLS 加持的变种, 正常情况下 Wireshark 看到这些数据包也无能为力, 本文来分析事件一种调测阶段常用的解析 TLS 协议包的方法.

本文所提及内容并非强制解开 TLS 数据包, 而是通过一些手段可以得到 TLS 握手后的对称加密密钥, 实现解析 TLS 数据包的目的.

阅读全文 »

有时候需要检查对端服务器所使用的证书是不是符合预期, 如果是 HTTPS 服务可以通过浏览器来检查, 那如果对端服务器并不是一个 HTTPS 的服务, 那么就可以用下面的命令来检查(当然 HTTPS 也支持, 无差别 TLS):

1
openssl s_client -showcerts -verify_quiet -connect 6xyun.cn:443
阅读全文 »

遍历文章无数, 都没找到根因. https://www.baidu.com/s?wd=stm32%20sprintf%20%E6%AD%BB%E6%9C%BA

最终在 STM32CubeIDE FreeRTOS 使用 printf 进入 HardFault_Handler 找到了根源, 记录一下.

创建多个任务,并在任务中使用 printf 串口打印,程序会进入 HardFault_Handler 中断,经查,是因为任务栈分配的太小导致的,STM32CubeIDE 中的 FreeRTOS 默认堆栈大小为 128,更改为 512 即可。

阅读全文 »

当你在处理文本文件时,复制,剪切,粘贴文本是最常用的操作。

Vim 以及它的前辈 VimacOS 和基本上所有的 Linux 版本上都预装了。在你喜欢的编辑器还没有安装的情况下,对 Vim 有一些基本了解是很有用处的。

本文展示在 Vim/Vi 编辑器中如何拷贝,剪切以及粘贴。

阅读全文 »

转自:https://www.zhihu.com/question/41003297

一、源码分析

  1. clearCallingIdentity 方法,最终调用如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int64_t IPCThreadState::clearCallingIdentity()
    {
    int64_t token = ((int64_t)mCallingUid<<32) | mCallingPid;
    clearCaller();
    return token;
    }

    void IPCThreadState::clearCaller()
    {
    mCallingPid = getpid(); //当前进程pid赋值给mCallingPid
    mCallingUid = getuid(); //当前进程uid赋值给mCallingUid
    }
    • mCallingUid(记为UID),保存 Binder IPC 通信的调用方进程的 Uid
    • mCallingPid(记为PID),保存 Binder IPC 通信的调用方进程的 Pid

    UIDPIDIPCThreadState 的成员变量, 都是 32 位的 int 型数据,通过移位操作,将 UIDPID 的信息保存到 token,其中高 32 位保存 UID,低 32 位保存 PID。然后调用 clearCaller() 方法将当前本地进程 piduid 分别赋值给 PIDUID,最后返回 token

    一句话总结:
    clearCallingIdentity 作用是清空远程调用端的 uidpid,用当前本地进程的 uidpid 替代;

阅读全文 »