金野喵君 发表于 2018-11-30 15:56

XNUCA2018-逆向分析Code_Interpreter

本帖最后由 金野喵君 于 2018-11-30 20:07 编辑

当时脚本在用claripy求解器时条件设置少了,跑出来不对,离成功只差一点,自闭ing。
先放到ida里F5分析一下,要求输入三个数,然后对这个数判断,还有一个数必须不为0.


在输入完成后发现关键函数sub_400806,里面是个虚拟机。

分析发现虚拟机的机器码在code文件里,用winhex查看。


接下来要做的就很明确了,分析虚拟机,将机器码反汇编。
幸好没有发现有判断跳转之类的项,不然还原起来还是费事的(还是我太菜了)

执行编写的脚本,运行结果如下:

分析一下,发现如果把我们输入的三个数设为x,y,z的话,可以得到一个三元一次方程。数太大了,手算还是拉倒吧,上claripy。


比赛那天没加后三个条件,直接放方程,结果凉凉。理论上应该一样,我的高中数学日了狗吗?有大佬知道为什么吗?{:301_972:}





大鱼爱吃猫 发表于 2018-11-30 22:34

好深奥的样子呀

xdsec_bin 发表于 2018-12-1 06:06

因为这个方程在前面做过模运算,所以出来的是多解
我当时也被坑到了

zjlzhok 发表于 2018-12-1 07:53

谢谢分享。

金野喵君 发表于 2018-12-1 10:50

xdsec_bin 发表于 2018-12-1 06:06
因为这个方程在前面做过模运算,所以出来的是多解
我当时也被坑到了

原来是这样,谢谢

qeh8902 发表于 2018-12-1 23:50

谢谢分享
页: [1]
查看完整版本: XNUCA2018-逆向分析Code_Interpreter