前言
首先建议看下之前的文章,这题基本上用pin可以很快的解决。
过程
具体的pin和pintool我就不说了
0x0
拿到题目很蒙,IDA打开,发现全是gmp,mpz的东西,了解一点的同学应该能联想到RSA,但是好像对解题没什么帮助哈。总之初略的理了一下逻辑,通过两种不同的方式进行RSA加密,第一个是直接利用的RSA加密原理,第二是通过使用gmp库的API函数。如果仅仅是RSA加密其实还是好做的,但是很恶心,程序做了控制流平坦化,因此我们尝试使用pin进行解答。
首先通过程序代码能看到,flag的长度为38位,然后使用inscount0.so,输入QCTF等字符,进行猜测,发现指令数是递增的。2333,那么直接爆破一下就好了。
代码如下:
import subprocess
import os
import logging
import json
import string
import time
logg