南京邮电大学网络攻防平台逆向writeup之[WxyVM]

#1

找到主函数,看上去很简单,把输入的字符串拿去一个函数作运算,然后拿字节和一个固定的dword对比

南京邮电大学网络攻防平台逆向writeup之[WxyVM]

坑点1:动态调试的时候才找到,是拿byte和dword对比,这里卡了好久,终于找到拿出来对比的字符串了。


南京邮电大学网络攻防平台逆向writeup之[WxyVM]


#2

进入sub_4005b6();这个就是加密函数,byte_6010C0 是一个类似hash表的东东,有1500字节长,为了方便读取截出来保存为一个二进制文件,winhex打开看一下

南京邮电大学网络攻防平台逆向writeup之[WxyVM]


南京邮电大学网络攻防平台逆向writeup之[WxyVM]

3#

读这段代码的大致意思,每次循环取0,1,2三位,第一位拿来select case,第2位拿来定位,第3位拿来运算,比如03,04,05的值分别是[03,0d,0a],在select case 中的运算公式就应该为

byte_604b80[0d]^=0a

坑点2:运算过程中可能会溢出,这里卡了好几天,NND

#4

答案就不给了吧,看一下提交成功的截图

南京邮电大学网络攻防平台逆向writeup之[WxyVM]