题目描述
ReversingKr KeygenMe
Find the Name when the Serial is 76876-77776
This problem has several answers.Password is ***p
解题思路
这题的逻辑挺简单,name
的约束是需为a-z
的字符,然后对name
的每个字节的前五位(因为a-z的前三位都是011)经过一些运算(加法)后与serial进行比较。
关键函数的伪码如下
1 | signed int __stdcall sub_401740(int a1) |
一些api的说明如下
itow_s(name_first_4bit + name_second_4bit, v12, 0xAu, 10)
将第一个参数转成10进制的数字,比如参数为6,得到的结果就是字符6。
ATL::CSimpleStringT<wchar_t,1>::GetAt(&serial, 6)
取serial的第7个字符。
解题脚本
这里用z3
约束器进行求解。
1 | from z3 import * |
本文链接: https://l1b0.fun/9a891a97/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!