elrond32
前置知识
int __cdecl main(int argc, char **argv)
* argc: 整数, 为传给main()的命令行参数个数。
* argv: 字符串数组。
argv[0] 为程序运行的全路径名;
argv[1] 为在DOS命令行中执行程序名后的第一个字符串;
argv[2] 为执行程序名后的第二个字符串;
...
argv[argc]为NULL。
所以说这题相当于是传了一个a2字符串

而这里是对函数进行操作

数据存放

所以如果汇编代码中是按照db(一个字节)来储存数据的话就需要4个db来进行表示,不足的就补0,如下

注意
这里看到这些数字要联想到ASCII码,r键转换

解题
先分析if部分的关键函数

看到都指向label,说明因该是对字符串进行多次同一类型 的操作

然后这里的话相当于是说对字符串进行位移,每次操作一个的意思,然后a2从0开始进行特定的变化

看到a2变化后是%11,而且case的情况只有11个,说明这里的a1应该只有11位或者只需要这么多
那么也可以手搓a2的变化范围进而得到a1的值
string a1=[105,115,101,110,103,97,114,100]
然后分析下一个函数


可以看到 v2 是从 unk_8048760 处复制了 33 个 int,查看 unk_8048760 的值发现是一长串数字,刚开始还把我迷惑了,我觉得这么长因该不会是有用的东西吧

后面才知道这是用0来填充了(一个 int 占 4 个字节,所以剩下 3 个的字节用 0 填充),将0去掉就可以得到准确的数据了
写出脚本得到,注意这里也只需要a1字符串的8个

key=[105,115,101,110,103,97,114,100]
v2=[0x0F,0x1F,0x04,0x09,0x1C,0x12,0x42,0x09,0x0C,0x44,0x0D,0x07,0x09,0x06,0x2D,0x37,0x59,0x1E,0x00,0x59,0x0F,0x08,0x1C,0x23,0x36,0x07,0x55,0x02,0x0C,0x08,0x41,0x0A,0x14]
flag=''
for i in range(33):
flag+=chr(v2[i]^key[(i%8)])
print(flag)
elrond32的更多相关文章
- 攻防世界 reverse elrond32
tinyctf-2014 elrond32 1 int __cdecl main(int a1, char **arg_input) 2 { 3 if ( a1 > 1 && c ...
随机推荐
- ip2location.py
import re import geoip2.database from tabulate import tabulate from matplotlib import pyplot as plt ...
- 快速入门OpenCv(python版)
OpenCV是一个(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows和Mac OS操作系统上.它轻量级而且高效--由一系列 C 函数和少量 C++ 类构成,同时提供了Python. ...
- async、await其实是generator和promise的语法糖
async 关键字用于声明异步函数,await 用于在async函数中将异步代码变为同步,阻塞代码的执行 对于promise和generator不熟悉的朋友可以移步看看这些文章 Promise的理解与 ...
- 如何用IoT边缘连接器实现云端应用控制PLC?
本文分享自华为云社区<数字工厂深入浅出系列(十):IoT边缘连接器实现云端应用控制PLC>,作者: 云起MAE. 通过IoT云平台和边缘计算的技术设施,工厂可以将PLC等OT过程制造控制器 ...
- [golang]字符串拼接
前言 在go语言中,因为字符串只能被访问,不能被修改,所以进行字符串拼接的时候,golang都需要进行内存拷贝,造成一定的性能消耗. 方式1:操作符 + 特点:简单,可读性良好.每次拼接都会产生内存拷 ...
- 使用在线Excel时,有哪些方法可以引入计算函数?
摘要:本文由葡萄城技术团队于博客园原创并首发.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 在日常生活和工作中,我们都会或多或少的使用Excel中的 ...
- IDEA使用@Autowired注解为什么会提示不建议?
在使用IDEA编写Spring相关的项目时,当在字段上使用@Autowired注解时,总会出现一个波浪线提示:"Field injection is not recommended.&qu ...
- 8、Mybatis之自定义映射
8.1.环境搭建 8.1.1.创建新module 创建名为mybatis_resultMap的新module,过程参考5.1节 8.1.2.创建t_emp和t_dept表 CREATE TABLE ` ...
- Flutter系列文章-Flutter应用优化
当涉及到优化 Flutter 应用时,考虑性能.UI 渲染和内存管理是至关重要的.在本篇文章中,我们将通过实例深入讨论这些主题,展示如何通过优化技巧改进你的 Flutter 应用. 代码性能优化 1. ...
- Web应用防火墙--规则防护
一.什么是Web应用防火墙? Web应用防火墙对网站.APP的业务流量安全及合规性保护,对业务流量的识别恶意特征提取.分析识别出恶意流量并进行处理, 将正常安全的流量回源到业务服务器, 保护网站核心业 ...