[原创]影分身之术 WriteUp from W8C.MozhuCY
发表于:
2019-3-25 00:23
6676
[原创]影分身之术 WriteUp from W8C.MozhuCY
//MozhuCY师傅没有雪币了,由我代发WP
function ckpswd() {
key = "simpower91";
a = document.all.pswd.value;
if (a.indexOf(key) == 0) {
l = a.length;
i = key.length;
sptWBCallback(a.substring(i, l));
} else {
alert("wrong!<" + a + "> is not my GUID ;-)");
return "1234";
}
}
function ok() {
alert("congratulations!");
}
这个题目出的非常的神奇了,之前没有逆过delphi,所以还是有一点难度
程序是一个窗口,输入以后点击check,会有一个弹窗提示wrong,查看了一下内置字符串,发现了一些script的东西,确定了一下是js
后面就比较神奇了,程序用到的数据写到了代码段里,这个在逆向的时候就有一些小干扰了..,在字符串中,可以看到<input type=button value="checkMyFlag" onclick="ckpswd();">
的字符串,按钮事件
在程序中可以在492BA8的位置看到一段js代码,大概内容是eval(packed),其实就是js混淆,寻找在线网站即可解密这段代码
其实就是个字符串比较函数,所以可以知道前几位是simpower91,输入后没有什么反应,于是继续跟进
在后面程序会检查属否存在data.txt并且打开读取文件,不过好像没有什么影响= =,但是会看到一个比较长度是否等于4的运算,也就是输入是simpower91 + xxxx.
程序在0xa4000的位置做了一些数据操作,在函数4734b0中,还有一些写入0x90,0xc3的循环,跟进发现跳出这个函数以后的sub_4734B0中jmp [esp-4+var_40]
,是一个向刚才的虚拟空间的跳转,跟进进刚才写入的数据可以看到在执行逐位对比的操作,从eax,edx寄存器中可以找到数据,将每位加上7f就能拿到后四位
提取数据逆向得到后四位a123,输入验证通过
这个题目出的非常的神奇了,之前没有逆过delphi,所以还是有一点难度 程序是一个窗口,输入以后点击check,会有一个弹窗提示wrong,查看了一下内置字符串,发现了一些script的东西,确定了一下是js
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)