mt19937专题

基于mt19937_64的字符串哈希(板子整理)

引自tourist的哈希板子,引入和时间相关的随机值mt19937_64,所以不会被卡掉 入参:传入string 使用: #include<bits/stdc++.h>using namespace std;#define rep(i,a,b) for(int i=(a);i<=(b);++i)#define per(i,a,b) for(int i=(a);i>=(b);--i)t

MT19937在连续输出存在截断的情况下利用z3符号执行推导内部状态以及等价种子

传统针对MT19937的逆向往往需要得到连续且完整的624个随机数,从而逆向出所有内部状态。但在实际场景中,想得到连续且完整的624个随机数是比较困难的,大部分情况下得到的是一些截断的数(例如得到连续的624个数,每个数是原始随机输出中的前16比特)。这种情况下,我们可以利用z3的符号执行推导部分内部状态,甚至可以推导一个“部分等价”的初始种子。本文针对python的random底层c库实现做了