tinyctf-2014

elrond32

 1 int __cdecl main(int a1, char **arg_input)
2 {
3 if ( a1 > 1 && check_8048414(arg_input[1], 0) )
4 {
5 puts("Access granted");
6 print_flag_8048538((int)arg_input[1]);
7 }
8 else
9 {
10 puts("Access denied");
11 }
12 return 0;
13 }

关注check_8048414函数和print_flag_8048538函数

 1 signed int __cdecl sub_8048414(_BYTE *a1, int a2)
2 {
3 signed int result; // eax
4
5 switch ( a2 )
6 {
7 case 0:
8 if ( *a1 == 'i' )
9 goto LABEL_19;
10 result = 0;
11 break;
12 case 1:
13 if ( *a1 == 'e' )
14 goto LABEL_19;
15 result = 0;
16 break;
17 case 3:
18 if ( *a1 == 'n' )
19 goto LABEL_19;
20 result = 0;
21 break;
22 case 4:
23 if ( *a1 == 'd' )
24 goto LABEL_19;
25 result = 0;
26 break;
27 case 5:
28 if ( *a1 == 'a' )
29 goto LABEL_19;
30 result = 0;
31 break;
32 case 6:
33 if ( *a1 == 'g' )
34 goto LABEL_19;
35 result = 0;
36 break;
37 case 7:
38 if ( *a1 == 's' )
39 goto LABEL_19;
40 result = 0;
41 break;
42 case 9:
43 if ( *a1 == 'r' )
44 LABEL_19:
45 result = check_8048414(a1 + 1, 7 * (a2 + 1) % 11);// arg2-->0 7 1 3 6 5 9 4
46 else
47 result = 0;
48 break;
49 default:
50 result = 1;
51 break;
52 }
53 return result;
54 }

上面函数验证输入

输出flag函数print_flag_8048538:

1 int __cdecl print_flag_8048538(int a1)
2 {
3 int v2[33]; // [esp+18h] [ebp-A0h]
4 int i; // [esp+9Ch] [ebp-1Ch]
5
6 qmemcpy(v2, data_8048760, sizeof(v2));
7 for ( i = 0; i <= 32; ++i )
8 putchar(v2[i] ^ *(char *)(a1 + i % 8));
9 return putchar(10);

wp:

 1 a='ie ndags r'
2 x=0
3 s=[]
4 for i in range(8):
5 x=7*x%11
6 s.append(a[x])
7 x+=1
8 print(''.join(s))
9 data=[15, 31, 4, 9, 28, 18, 66, 9, 12, 68, 13, 7, 9, 6, 45, 55, 89, 30, 0, 89, 15, 8, 28, 35, 54, 7, 85, 2, 12, 8, 65, 10, 20]
10 for i in range(33):
11 print(chr(ord(s[i%8])^data[i]),end='')

isengard
flag{s0me7hing_S0me7hinG_t0lki3n}

攻防世界 reverse elrond32的更多相关文章

  1. 攻防世界 reverse 进阶 10 Reverse Box

    攻防世界中此题信息未给全,题目来源为[TWCTF-2016:Reverse] Reverse Box 网上有很多wp是使用gdb脚本,这里找到一个本地还原关键算法,然后再爆破的 https://www ...

  2. 攻防世界 reverse evil

    这是2017 ddctf的一道逆向题, 挑战:<恶意软件分析> 赛题背景: 员工小A收到了一封邮件,带一个文档附件,小A随手打开了附件.随后IT部门发现小A的电脑发出了异常网络访问请求,进 ...

  3. 攻防世界 reverse tt3441810

    tt3441810 tinyctf-2014 附件给了一堆数据,将十六进制数据部分提取出来, flag应该隐藏在里面,(这算啥子re,) 保留可显示字符,然后去除填充字符(找规律 0.0) 处理脚本: ...

  4. 攻防世界 reverse 进阶 APK-逆向2

    APK-逆向2 Hack-you-2014 (看名以为是安卓逆向呢0.0,搞错了吧) 程序是.net写的,直接祭出神器dnSpy 1 using System; 2 using System.Diag ...

  5. 攻防世界 reverse Windows_Reverse2

    Windows_Reverse2   2019_DDCTF 查壳: 寻找oep-->dump-->iat修复   便可成功脱壳 int __cdecl main(int argc, con ...

  6. 攻防世界 reverse BabyXor

    BabyXor     2019_UNCTF 查壳 脱壳 dump 脱壳后 IDA静态分析 int main_0() { void *v0; // eax int v1; // ST5C_4 char ...

  7. 攻防世界 reverse parallel-comparator-200

    parallel-comparator-200 school-ctf-winter-2015 https://github.com/ctfs/write-ups-2015/tree/master/sc ...

  8. 攻防世界 reverse 进阶 8-The_Maya_Society Hack.lu-2017

    8.The_Maya_Society Hack.lu-2017 在linux下将时间调整为2012-12-21,运行即可得到flag. 下面进行分析 1 signed __int64 __fastca ...

  9. 攻防世界 reverse easy_Maze

    easy_Maze 从题目可得知是简单的迷宫问题 int __cdecl main(int argc, const char **argv, const char **envp) { __int64 ...

随机推荐

  1. Ubuntu16安装chrome

    不免让您失望, 安装正常的chrome,Dependency is not satisfiable: libnss3 (>= 2:3.22)问题一直没能解决,故使用chromium次而代之. s ...

  2. 我是sakebow:新人报到,请多关照!

    大家好 这里是sakebow,实际上是从CSDN转生过来的(说得好像在CSDN死了一样),在那边是ordinary_brony.我的GitHub名字也是sakebow 来这里干什么 主要还是想试试做个 ...

  3. 2021-2-18:请你说说MySQL的字符集与排序规则对开发有哪些影响?

    任何计算机存储数据,都需要字符集,因为计算机存储的数据其实都是二进制编码,将一个个字符,映射到对应的二进制编码的这个映射就是字符编码(字符集).这些字符如何排序呢?决定字符排序的规则就是排序规则. 查 ...

  4. Swift All in One

    Swift All in One Swift 5.3 https://github.com/apple/swift-evolution Xcode https://developer.apple.co ...

  5. PBN离场定高转弯保护区插件发布测试

    昨天2月29日,是四年才有一次的日子,本想着应该写点什么,但一测试发现还有问题,只能先放下. 今天是三月份的第一天,一年已经过去了六分之一.疫情的关系,原本并不紧急的工作,现在也开始积压的有些多了,时 ...

  6. Python算法_递归:汉诺塔

    游戏链接:https://zhangxiaoleiv.github.io/app/TowerOfHanoi/Hanoi.html 汉诺塔游戏算法: 1 def hanoi(n,x,y,z): 2 if ...

  7. TERSUS无代码开发(笔记08)-简单实例电脑端后台逻辑开发

    主管审批功能逻辑开发 1.查询逻辑开发(查询待审批记录) 2.批准处理(将选中的一条记录进行批准处理)  =============================================== ...

  8. 鸿蒙开源第三方组件 ——B站开源弹幕库引擎的迁移(上)

    鸿蒙入门指南,小白速来!0基础学习路线分享,高效学习方法,重点答疑解惑--->[课程入口] 目录: 一.弹幕库的基础知识 二.弹幕库的使用方法 三.sample解析 四.作者系列文章合集 前言 ...

  9. Pandas初体验

    目录 Pandas 一.简介 1.安装 2.引用方法 二.series 1.创建方法 2.缺失数据处理 2.1 什么是缺失值 2.2 NaN特性 2.3 填充NaN 2.4 删除NaN 2.5 其他方 ...

  10. 硬件交互 snmp 使用

    # *********************************snmp使用******************************************** # coding=utf-8 ...