当前位置: 首页 > news >正文

re题(19)BUUCTF[ACTF新生赛2020]easyre

BUUCTF在线评测 (buuoj.cn)

查下壳,有upx壳 

1c4d1fba3e78484fa00e256b709e354d.png

040bcd069f804b1da3537c04a2f11072.png 

找到主函数,

从for循环了解到flag长度应该是12,将flag的ASCII值作为下标取值,与v4数组比较。很简单,只需要利用v4数组在_data_start__中找位置,就是我们flag的值

int __cdecl main(int argc, const char **argv, const char **envp)
{_BYTE v4[12]; // [esp+12h] [ebp-2Eh] BYREF_DWORD v5[3]; // [esp+1Eh] [ebp-22h]_BYTE v6[5]; // [esp+2Ah] [ebp-16h] BYREFint v7; // [esp+2Fh] [ebp-11h]int v8; // [esp+33h] [ebp-Dh]int v9; // [esp+37h] [ebp-9h]char v10; // [esp+3Bh] [ebp-5h]int i; // [esp+3Ch] [ebp-4h]__main();qmemcpy(v4, "*F'\"N,\"(I?+@", sizeof(v4));printf("Please input:");scanf("%s", v6);if ( v6[0] != 65 || v6[1] != 67 || v6[2] != 84 || v6[3] != 70 || v6[4] != 123 || v10 != 125 )return 0;v5[0] = v7;v5[1] = v8;v5[2] = v9;for ( i = 0; i <= 11; ++i ){if ( v4[i] != _data_start__[*((char *)v5 + i) - 1] )//v5数组里存的flag,写脚本的话先以v4数组的字符为目标,在_data_start__里找到目标字符,再用目标字符在_data_start__里的下标加上1减去i就是flagreturn 0;}printf("You are correct!");return 0;
}

4367446ebd0c428d8961b596f7084f2e.png


v4 = [42,70,39,34,78,44,34,40,73,63,43,64]model = r"}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)(" + chr(0x27) + r'&%$# !"'pos = []for i in v4:pos.append(model.find(chr(i))+1)
s = [chr(x + 1) for x in pos]
flag = ''.join(s)
print ('flag{'+flag+'}')
#flag{U9X_1S_W6@T?}

本题用到了upx脱壳,一个简单逻辑分析,用字符串表找下标的方法加密 


http://www.mrgr.cn/news/27343.html

相关文章:

  • 【MySQL-初级】mysql基础操作(账户、数据库、表的增删查改)
  • 【C#生态园】选择最适合你的工具:C# GUI库完整比较及指南
  • 大模型大侦探-一次丝滑的探图记录
  • MyBatis系统学习(二)——MyBatis 核心配置与对象解析
  • 知识竞赛活动舞台搭建要多少钱
  • stm32单片机个人学习笔记3(GPIO输出)
  • Visual Studio打开项目的一些小技巧
  • 7-14 电话聊天狂人(map)
  • 本地部署轻量级web开发框架Flask结合内网穿透公网环境访问管理界面
  • 【二十】【QT开发应用】listwidget右键菜单和删除item
  • 构建基于 Feign 的微服务:从 Eureka 到负载均衡的实践 --day05
  • 查询中的算术表达式
  • 【AutoX.js】选择器 UiSelector - 查找包名
  • 【泰克生物】酵母展示建库技术解析:构建高质量抗体文库的实用指南
  • MyBatis系统学习(一)——项目结构及其含义
  • k8s中控制器的使用
  • 关于Vue2里 v-for和v-if一起用的时候会出现的问题
  • Ubuntu20-xrdp与Windows-mstsc远程桌面连接
  • 雷·达利欧(Ray Dalio)的20条《原则》
  • c++类模板为什么不能编译到动态库中来使用