buuctf Re Youngter-drive Writeup

PEID查壳,发现UPX壳

自动脱壳之后用IDA查看

image-20200121132045118

程序读入Source,然后启动了两个线程,最后调用函数sub_411190

image-20200121132154955

最后的函数是一个简单的比对。

第一个线程按照一定规则替换字符,并将计数器减一

第二个线程什么都不干,将计数器减一,延时100毫秒

image-20200121132401756

image-20200121132455082

两个线程抢占的是同一个线程句柄,因此字符是间隔替换的。

Dest只有29位,但是计数器是从29开始的,因此最后会多出一位。这一位填什么程序都能跑出flag,但是交到buuoj只有填E是对的,迷惑。

猜你喜欢

转载自www.cnblogs.com/y-m-y/p/12221464.html