dual_ec_prng 是基于椭圆曲线上的运算,由 NSA 提出,曾作为标准的伪随机数发生器。后被指出随机数序列有一定偏好;后被指出可能存在后门,攻击者可以根据当前随机数预测将来的随机数;再后来被明确废弃。本文从数学原理上仔细分析该伪随机数算法存在的缺陷,使用代码复现攻击的情景,非原创,是将数学论文里描述的内容展示出来。
分类:其他技术
用python下载指定的maven依赖库(主要是针对华为SDK)
华为的移动开发 SDK 是不提供下载地址的,只提供 maven url 和 artifact,最傻逼的是,他家的 maven 仓库不提供浏览功能,但是可以盲猜猜对路径,然后下载回来。也就是说只让 maven/gradle 替你下载,想看内容的话要到缓存里翻垃圾堆,不知道华为开放平台是什么脑子,于是造了个轮子来下载他家的 SDK。
分享一个git diff在mac上bug
git diff 在 mac 上有个奇怪现象,有时候我修改了文件,但 git diff 认为它没变;稍作研究后,发现是 mac 和 linux 的 mmap 表现不一致,也不好说是 bug 还是 feature。水一篇文章记录一下。
windows vmware workstation server 配置时的一些坑
我房间是有公网IP的,之前从办公室访问房间里的虚拟机,是先用rdp,然后再开启vmware的,虽然用起来没什么问题,但觉得不够优雅。而vmware的控制台本身是提供server-client直接通信的功能的,可以不借助rdp直接通信,配置时遇到一些坑,稍微记录一下。
strtok 的一个可能被忽略的细节
最近帮他们查了一下线上出现了一个神奇的 bug,先加载A库再加载 B 库 和 先加载 B 库再加载 A 库,会有不一致的行为,看起来不一致的行为是环境变量引起的,仔细排查了发现是strtok引起的,运行时会偷偷抹掉原本的字符串,稍微科普一下。
thumb汇编在ldr pc时容易忽略的一个细节
最近在修花指令,脚本修复 ldr 的时候,如果是从 PC 开始计算,发现ida的表现和keystone 的表现是不一致的,查了很久没找到原因。直到后面翻arm手册,才发现一个小细节。
CMake多模块的构建方式
前些天用 C 和 CPP 写了一个较为大型的项目
(可能也没有那么大型),其中模块间有相互依赖关系,配环境时候卡了很久,主要是对 CMake 的多模块不熟悉,查资料、抄 llvm、瞎测搞出了一些规律,本文不保证很准确,选择性地阅读。
本文不保证很准确,请选择性地阅读。
在 MacOS 上使用 CLion+Boost 简易教程
最近要用 C 写一个比较大的项目,里面有非常多的模块,而且不容易整个项目一起跑,于是准备使用 CLion + Boost 来进行单元测试,搭建环境花了挺久的,记一下吧!
10.14版macOS.sdk编译32位可执行文件
继续阅读“10.14版macOS.sdk编译32位可执行文件”本来今天高高兴兴,准备写一点在 Mac 上运行的32位的可执行文件,编译半天老是报错,最后发现在SDK.10.14后32位的编译库被苹果移除了,记一下降级流程。
Ubuntu16 统计端口出流量
故事发生在一个普通的周四,突然收到一条短信,说我阿里云的服务器欠费了。我刚充的钱就欠费了,这才几天啊,于是准备加这个功能,看看是谁在搞我,烧我流量。