71:Whitzard OJ逆向(二)
团队打了一下午awd,第一次打,节奏太快,跟不上,web太菜,只会逆向不会pwn,纯混子......
Dynamic analysis
time
IDA伪代码很容易看出来。
搜索关键字符串,交叉引用。
逻辑很简单,直接修改跳转就OK了。
game
游戏没怎么玩,直接看的IDA伪代码,虽然题意是要动态调试,但还是看看代码吧。
函数的大概意思都标注了。这道题花了不少时间,仔细玩了游戏就能猜出来是扫雷,而我是动态加静态分析完代码才看出来是扫雷,智商堪忧。知道了游戏的意思,动态调试一路改跳转可以直接得到flag。
既然分析了代码,就写出了吧,要不这篇太空了。
首先,所有的a1,a2参数似乎都是系统的,感觉像是句柄这类的东西。
然后看sub_401ec0,给了10*10,明显就是10*10矩阵的雷区。
v8数组吧,[10, 10, row, column, addr] 后面可以分析出, 第三个第四个参数是 行和列。 第五个参数 是一个地址,存放是否是地雷的标志。这里第五个参数就是v7。
注意类型,dword和qword。
设a是v7中的某一个值,a是一个qword类型的,可以分为两个dword类型的值。a可表示为a[0, 0]
随机设置a[0, 1]。
然后看sub_4022b3:
根据
v5返回的值判断地雷。
后边就容易理解了,感觉写的乱七八糟的,看来代码确实不容易讲解,哈哈,欢迎大佬指导。