前置知识

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的更多相关文章

  1. 攻防世界 reverse elrond32

    tinyctf-2014 elrond32 1 int __cdecl main(int a1, char **arg_input) 2 { 3 if ( a1 > 1 && c ...

随机推荐

  1. Blazor 跨平台的、共享一套UI的天气预报 Demo

    1. 前言 很久之前就读过 dotnet9 大佬的一篇文章,MAUI与Blazor共享一套UI,媲美Flutter,实现Windows.macOS.Android.iOS.Web通用UI,没读过的可以 ...

  2. JVM篇(一) 什么是JVM,它有什么用

    一.JVM的组成 1. JVM由那些部分组成,运行流程是什么? 从图中可以看出 JVM 的主要组成部分 ClassLoader(类加载器) Runtime Data Area(运行时数据区,内存分区) ...

  3. 2021-7-8 VUE的简易表单提交

    <!DOCTYPE html> <html> <head> <title> </title> <style type="te ...

  4. quarkus依赖注入之一:创建bean

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于依赖注入 对一名java程序员来说,依赖注入应该是 ...

  5. mysql-workbench-community报错解决办法

    输入以下命令: sudo apt-get -f install 参考链接:https://www.jianshu.com/p/767c9a29b403

  6. 随风迎 jmeter下TPS插件的安装(转)

    1.下载插件http://pan.baidu.com/s/1mioVJni 2.解压下载的安装包: 将 jpgc-graphs-basic-2.0.zip 解压缩后只有一个 lib 目录,该目录下有一 ...

  7. Azure Terraform(十四)Azure Key Vault 的机密管理

    一,引言 最近有网友私信我,将 Terraform 部署到 Azure 是一种将基础结构作为代码进行管理的好方法,但是如何使用 Azure Key Vault 来存储我们的 Secret ?在这篇博文 ...

  8. IDA的使用2

    IDA的使用2 string类型的选择 Rename 要注意如果再namelist和public name里面是不能重名 操作数 这个主要和开发结合精密, change sign-改变符号 bitwi ...

  9. Vue【原创】时间轴 【time-axis】&【date-axis】

    封装了关于时间轴的组件,有时候统计页面会用到. 效果图: 时间轴分为2种,一种是time-axis:范围选择模式,一种是date-axis:步长选择模式. 代码中涉及到的工具类和图片资源,请移步页面底 ...

  10. word2010中统一调整表格格式

    word中统一调整表格格式基本思路是: 1.选中所有的表格. 2.再对表格格式调整.    选中所有表格需要用到宏,操作很简单,具体操作如下: (1)工具栏"视图"下右下角&quo ...