signin
进来搜索字符串,然后找到:
看到sub_96A(input, (__int64)v9);对输入的字符串进行了操作
sub_96A
我们知道input[v3] >> 4 这个是取出高四位
input[v3++] & 0xF是取出第四位
去看一眼byte_202010可知道:这个就是将输入的字符串转化成16进制的样子。
最后放在v9里面。
_gmpz_powm
我们来百度一下,这个函数的作用
mpz_powm(result, a, b, m);
resule = a^b mod m
1 |
|
上述代码使用 GMP 库中的 _gmpz_powm 函数计算了 123456789^5 mod 1000000 的结果,最后打印出结果。这是一个非常简单的示例,用于说明 _gmpz_powm 函数的基本用法。
到这里我们就知道了这个很有可能是一个RSA的题目。
我们知道:N = 103461035900816914121390101299049044413950405173712170434161686539878160984549
然后用工具:Yafu
得到
P39 = 282164587459512124844245113950593348271
P39 = 366669102002966856876605669837014229419
然后e = 65537
写python来解开:
1 | import gmpy2 |
得到16进制。然后16进制转文本就可以了。
#suctf{Pwn_@_hundred_years}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Safety-Blog!