-
-
[原创] 看雪CTF.TSRC 2018 团队赛 第六题
-
发表于: 2018-12-11 21:36 3296
-
该程序是一个带窗口的程序,首先根据GetDlgItemTextA函数的交叉引用,来到sub_401040函数处,调用 GetDlgItemTextA函数 最多获取20个字符。
查看sub_401020函数没有任何关于输入的处理,查看区块发现有一个tls段,并且有一个tls回调函数,tls回调函数先于程序的入口点执行。
ida可以识别出tls回调函数,跟进该函数分析发现执行sub_401D50和sub_401C10两个函数后,启动了一个线程
跟进函数sub_401D50分析发现,这个函数获取了
sub_401020到
sub_401080的跳转距离。再看v5=0xE9,该值是一个jmp指令,最后保存到addr_414018,可以猜测这个程序可能使用了hook技术改变了执行流程。不过查看该全局变量的引用,addr_414018并没有被使用。
继续分析sub_401C10函数,结合动态分析发现该函数hook了
GetDlgItemTextA
函数。hook点在 GetDlgItemTextA函数地址加上32,跳转到目标函数sub_401A10
然后分析那个线程函数StartAddress,发现是一个死循环。根据dword_4147FC的值来决定是否执行sub_401C10这个hook函数。
接下来重点分析
sub_401A10这个目标函数。这个函数进行了sn的验证,在通过sub_401290和sub_4017B0这个两个函数的判断后,通过异或运算解密出输入正确的提示信息,OK和success两个字符串,并替换掉错误提示信息的字符串。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏记录
参与人
雪币
留言
时间
一笑人间万事
为你点赞~
2022-7-27 01:52
心游尘世外
为你点赞~
2022-7-26 23:50
飘零丶
为你点赞~
2022-7-17 03:23
听剑不则声
为你点赞~
2019-3-28 16:13
赞赏
他的文章
- vmp3.5模拟x86分支指令je、jne、jge和jl的分析 19620
- [原创]vmp trace的优化处理 18448
- [原创]基于LSTM的二进制代码相似性检测 21422
- [原创]混合布尔算术运算的混淆及反混淆 20124
- [原创]利用机器学习分析vmp的思路 18670
看原图
赞赏
雪币:
留言: