-
-
[原创][原创]2021 KCTF秋季赛 windows CrackMe
-
发表于:
2021-10-4 17:42
3018
-
[原创][原创]2021 KCTF秋季赛 windows CrackMe
在win64中,代码段寄存器0x23和0x33所对应的GDT表项中CPU的模式分别为32位与64位。
具体原理参考链接:https://bbs.pediy.com/thread-221236.htm
设计思路:
1.exe程序编译为32位程序,把核心判断代码放入64位代码中。
2.加密用base64改了一下编码表,编码表特别好找,单步跟就能看到。
3.校验flag的流程是线性的,没有反调试,加了一丢丢的垃圾指令(可能你们都注意不到)。只要找到onclick函数,一路单步就可以看到输出的结果。
4.把关键字符串隐藏起来,运行时解密出来。比如:"正确","错误",flag编码后的字符串。隐藏字符串算法是异或。
流程如下:
1.把输入的flag进行base64编码
2.把编码结果丢到64位代码中对比,接收对比结果
3.把对比结果输出
破解思路
1.找到64位代码中flag加密后的数据
2.找到base64编码表
3.通过base64算法还原flag
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2021-12-3 11:45
被kanxue编辑
,原因: