首页
论坛
课程
招聘
[原创]影分身之术 WriteUp from W8C.MozhuCY
2019-3-25 00:23 4212

[原创]影分身之术 WriteUp from W8C.MozhuCY

2019-3-25 00:23
4212

第三题 影分身之术

//MozhuCY师傅没有雪币了,由我代发WP

  • 这个题目出的非常的神奇了,之前没有逆过delphi,所以还是有一点难度
  • 程序是一个窗口,输入以后点击check,会有一个弹窗提示wrong,查看了一下内置字符串,发现了一些script的东西,确定了一下是js
  • 后面就比较神奇了,程序用到的数据写到了代码段里,这个在逆向的时候就有一些小干扰了..,在字符串中,可以看到<input type=button value="checkMyFlag" onclick="ckpswd();">的字符串,按钮事件
  • 在程序中可以在492BA8的位置看到一段js代码,大概内容是eval(packed),其实就是js混淆,寻找在线网站即可解密这段代码
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!");
}
  • 其实就是个字符串比较函数,所以可以知道前几位是simpower91,输入后没有什么反应,于是继续跟进
  • 在后面程序会检查属否存在data.txt并且打开读取文件,不过好像没有什么影响= =,但是会看到一个比较长度是否等于4的运算,也就是输入是simpower91 + xxxx.
  • 程序在0xa4000的位置做了一些数据操作,在函数4734b0中,还有一些写入0x90,0xc3的循环,跟进发现跳出这个函数以后的sub_4734B0中jmp [esp-4+var_40],是一个向刚才的虚拟空间的跳转,跟进进刚才写入的数据可以看到在执行逐位对比的操作,从eax,edx寄存器中可以找到数据,将每位加上7f就能拿到后四位
  • 提取数据逆向得到后四位a123,输入验证通过

[培训]12月3日2020京麒网络安全大会《物联网安全攻防实战》训练营,正在火热报名中!地点:北京 · 新云南皇冠假日酒店

收藏
点赞0
打赏
分享
最新回复 (2)
雪    币: 1260
活跃值: 活跃值 (41)
能力值: ( LV4,RANK:56 )
在线值:
发帖
回帖
粉丝
i1arn 活跃值 2019-3-25 12:06
2
0
学习一下,嘻嘻
最后于 2019-3-25 13:30 被i1arn编辑 ,原因:
雪    币: 2420
活跃值: 活跃值 (17)
能力值: ( LV11,RANK:198 )
在线值:
发帖
回帖
粉丝
simpower 活跃值 2019-3-27 09:36
3
0
神奇,谢谢夸奖
游客
登录 | 注册 方可回帖
返回