攻防世界 reverse elrond32
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的更多相关文章
- 攻防世界 reverse 进阶 10 Reverse Box
攻防世界中此题信息未给全,题目来源为[TWCTF-2016:Reverse] Reverse Box 网上有很多wp是使用gdb脚本,这里找到一个本地还原关键算法,然后再爆破的 https://www ...
- 攻防世界 reverse evil
这是2017 ddctf的一道逆向题, 挑战:<恶意软件分析> 赛题背景: 员工小A收到了一封邮件,带一个文档附件,小A随手打开了附件.随后IT部门发现小A的电脑发出了异常网络访问请求,进 ...
- 攻防世界 reverse tt3441810
tt3441810 tinyctf-2014 附件给了一堆数据,将十六进制数据部分提取出来, flag应该隐藏在里面,(这算啥子re,) 保留可显示字符,然后去除填充字符(找规律 0.0) 处理脚本: ...
- 攻防世界 reverse 进阶 APK-逆向2
APK-逆向2 Hack-you-2014 (看名以为是安卓逆向呢0.0,搞错了吧) 程序是.net写的,直接祭出神器dnSpy 1 using System; 2 using System.Diag ...
- 攻防世界 reverse Windows_Reverse2
Windows_Reverse2 2019_DDCTF 查壳: 寻找oep-->dump-->iat修复 便可成功脱壳 int __cdecl main(int argc, con ...
- 攻防世界 reverse BabyXor
BabyXor 2019_UNCTF 查壳 脱壳 dump 脱壳后 IDA静态分析 int main_0() { void *v0; // eax int v1; // ST5C_4 char ...
- 攻防世界 reverse parallel-comparator-200
parallel-comparator-200 school-ctf-winter-2015 https://github.com/ctfs/write-ups-2015/tree/master/sc ...
- 攻防世界 reverse 进阶 8-The_Maya_Society Hack.lu-2017
8.The_Maya_Society Hack.lu-2017 在linux下将时间调整为2012-12-21,运行即可得到flag. 下面进行分析 1 signed __int64 __fastca ...
- 攻防世界 reverse easy_Maze
easy_Maze 从题目可得知是简单的迷宫问题 int __cdecl main(int argc, const char **argv, const char **envp) { __int64 ...
随机推荐
- Python+OpenCV+图片旋转并用原底色填充新四角
import cv2 from math import fabs, sin, cos, radians import numpy as np from scipy.stats import mode ...
- 末日余晖 PC 版 下载
末日余晖 PC 版 下载 <末日余晖>(英文名:Farlight 84)一款废土题材的射击游戏 Farlight 84 Official Trailer Farlight 84 官方预告片 ...
- React Native & Fast Refresh
React Native & Fast Refresh 0.61 https://reactnative.dev/blog/2019/09/18/version-0.61/ Fast Refr ...
- js & bitwise-operators
js & bitwise-operators 不用加减乘除运算符, 求整数的7倍 "use strict"; /** * * @author xgqfrms * @lice ...
- css3 units & 1 turn
css3 units & 1 turn One full circle is 1turn, 180deg === 0.5turn degrees, gradians, radians, tur ...
- css var all in one & html & root & :root
css var all in one number :root{ --num: 0; } html{ --num: 0; } let html = document.querySelector(`ht ...
- Angular Routing
Angular Routing v9.0.7 https://angular.io/start/start-routing
- VAST维萨币二月发行,高倍币重现江湖!
市场长期的历史经验表明,经营盈利能力最好的企业,经常是那些现在的经营方式与5年前甚至10年前几乎完全相同的企业.这个经营模式放到币圈也是一样的,2020年的挖矿是最火的,这个模式现在在市场也同样受用. ...
- NGK内存将为全球投资者创造新的财富增长机会
2020年,随着BTC的持续上涨带动了整个区块链市场的持续加温,同时金融市场也对金融体制做出了改变,关于金融和区块链的结合越来越被人们所认可,在此基础上,DeFi行业借此迎来了快速发展,据不完全统计, ...
- python 相对路径和绝对路径的区别
一,Python中获得当前目录和上级目录 获取当前文件的路径: from os import path d = path.dirname(__file__) #返回当前文件所在的目录 # __file ...