栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

[SUCTF2019]hardcpp

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[SUCTF2019]hardcpp

首先用IDA打开,发现有很多while(1),大量代码混淆其中

利用defalt进行控制流平坦化去混淆

 

找到主函数地址

好了

开始执行

输入 python .defalt.py hardCpp 0x4007E0

等几分钟后会执行完毕

顺便说一下符号执行的原理

符号执行大概是将内存 寄存器值当成未知变量 就像设一个方程 当成x 往下执行 遇到分支保存一下 尝试各种分支 执行到你想要的地方 后续可以约束求解

好了,我们再打开

 逻辑清晰很多了

 进行分析

 每个函数大概的意思都放在名称上了

分析加密逻辑

解密逻辑

 

 

 ok

#include
int main(){
    int i;
   unsigned char enc[] ={0xF3, 0x2E, 0x18, 0x36, 0xE1, 0x4C, 0x22, 0xD1, 0xF9, 
    0x8C, 0x40, 0x76, 0xF4, 0x0E, 0x00, 0x05, 0xA3, 0x90, 0x0E, 0xA5};
  char flag[22];
    flag[0]='#';
    flag[21]='';
    for(i = 1;i<21;i++){
     flag[i]= ((enc[i-1]^((flag[i-1] ^18)*3 +2))-flag[i-1]%7)^0;                      
    }
    puts(flag); 
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/869030.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号