吾爱2025解题领红包5windows高级题简要分析
前言
这个题很有意思
但是第一关就卡了我很久
这里记录一下我是怎么分析的
壳
这个壳的反调试部分在TlsCallback_0函数的第二次call rax中
7FF708E27DB0这个函数,通过7FF708E26280判断是否有调试和7FF708E244A0判断是否有hook,然后获得一个标志位放到flag_a中
在jmp rax中跳转到7FF708E24400执行setThreadInfomation函数的位置,传参是-(flag_a != 1) ^ 0x11
如果标志位为1说明是调试,会直接触发hidefromdebug效果,如果标志为2则会传入错误的setInfomatinon值,最后会传出0xC000003导致显示环境异常.如果标志为5,表明正常不会进行检查.
第二点,这里调试的时候如果对后面SMC解密的代码下了断点0xcc,则会导致它还原失败,所以这里是不能提前下断点的
流程分析
通过hook getItemDialog函数的ret,可以找到按钮按下时哪里读取了,这里对flag进行了检查,然后生成了一个结构放入临界区就结束了。说明这是多线程的程序
评论