攻防世界--Hello, CTF
时间:2019-08-20
本文章向大家介绍攻防世界--Hello, CTF,主要包括攻防世界--Hello, CTF使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
测试文件地址:https://www.lanzous.com/i5ot1yd
使用IDA1打开
打开之后,这个字符串和第一题的有些类似,拿去转换一下,Flag就得到了
CrackMeJustForFun
也可以对伪代码进行分析
1 int __cdecl main(int argc, const char **argv, const char **envp) 2 { 3 signed int v3; // ebx 4 char v4; // al 5 int result; // eax 6 int v6; // [esp+0h] [ebp-70h] 7 int v7; // [esp+0h] [ebp-70h] 8 char v8; // [esp+12h] [ebp-5Eh] 9 char v9[20]; // [esp+14h] [ebp-5Ch] 10 char v10; // [esp+28h] [ebp-48h] 11 __int16 v11; // [esp+48h] [ebp-28h] 12 char v12; // [esp+4Ah] [ebp-26h] 13 char v13; // [esp+4Ch] [ebp-24h] 14 15 strcpy(&v13, "437261636b4d654a757374466f7246756e"); 16 while ( 1 ) 17 { 18 memset(&v10, 0, 0x20u); 19 v11 = 0; 20 v12 = 0; 21 sub_40134B(aPleaseInputYou, v6); 22 scanf(aS, v9); 23 if ( strlen(v9) > 0x11 ) 24 break; 25 v3 = 0; 26 do 27 { 28 v4 = v9[v3]; 29 if ( !v4 ) 30 break; 31 sprintf(&v8, asc_408044, v4); 32 strcat(&v10, &v8); 33 ++v3; 34 } 35 while ( v3 < 17 ); 36 if ( !strcmp(&v10, &v13) ) 37 sub_40134B(aSuccess, v7); 38 else 39 sub_40134B(aWrong, v7); 40 } 41 sub_40134B(aWrong, v7); 42 result = stru_408090._cnt-- - 1; 43 if ( stru_408090._cnt < 0 ) 44 return _filbuf(&stru_408090); 45 ++stru_408090._ptr; 46 return result; 47 }
第36~39行代码是判断输入字符串和right serial是否匹配,通过第15行代码,我们知道v13就是right serial,将初始化v13的十六进制转换为字符串即可。
原文地址:https://www.cnblogs.com/Mayfly-nymph/p/11386298.html
- SpringMVC 实现多文件上传的两种方式及其效率比较
- Spring 之加载配置属性文件和注解属性绑定
- SpringMVC 提交表单400 Bad Request
- 如何在三年内快速成长为一名技术专家
- 【微信开发】getAccessToken 和 getJsapi_ticket缓存支持
- 微信JS-SDK 注入权限验证配置
- Maven 项目下slf4j 包冲突问题
- 谷歌教你学 AI-第三讲简单易懂的估算器
- 黑产是如何强刷用户银行卡8.1万元的?
- Spring 必知概念(二)
- 利用iText 组件导出PDF
- 利用POI组件导出Excel的简单示例
- MongoDB 整合spring-data-jpa,spring 4.x
- 【微信开发】 红包接口开发
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- echarts相关问题总结
- 视频上云EasyNTS组网硬件设备登录后自动下线并清除设备信息是什么原因?
- 震惊! 再也不怕蹭网被发现了!
- 国标GB28181协议客户端EasyGBS国标视频平台级联EasyNVR:EasyNVR到EasyGBS上是如何注册及注销的?
- git全局忽略文件配置
- 2018-10-16近期vue开发总结
- 有赞埋点实践
- 树莓派配置LEDE(openwrt衍生版)拨号
- Android 沉浸式解析和轮子使用
- 腾讯云CDN使用(接入方式:COS源)
- 工作流引擎在有赞 DevOps 中的实践
- 微信带备注群发真好玩!
- 微信机器人-定时群发+智能回复
- 治电EggJS开发规范
- jenkins远程部署项目