DawgCTF wp(re和crypto)
简单写写思路,想看详解的。。我脚本有些丢失了。。师傅请移步。
挂了个vpn,算正式打这种国际赛,全是英文。上去打了两天,昨晚晚上划水了一晚上补作业。。。,re那时候写出来三道,Potentially Eazzzy这题是真的坑,不知道是不是我环境问题,本地都过了,服务器死活过不去。。。白给了250分。第三题,讲道理很懵逼,动态进去,不知道里面函数是干啥的。。看了一下午汇编,没结果。。刚刚看了大佬的wp,发现根本没加密,要不就是一堆花指令,直接把明文,输入服务器就出来了,等下还得问问。。。,现在286名,很水,没写的题,下个星期争取搞懂,再写点难的题,打点比赛认识差距,下星期打一波基础


re:
1.

直接ida打开后,发现有一堆汇编指令是mov指令,按R,转换下,发现了flag,直接交了。
2.
这题整体逻辑挺简单了,也没花里胡哨的,直接逆着写回去,感觉之前有些逆向的算法写不出来,是我自己想的过于复杂,实际上爆破就完事了,还挺快乐.
arr=[0x41, 0xF5, 0x51, 0xD1, 0x4D, 0x61, 0xD5, 0xE9, 0x69, 0x89, 0x19, 0xDD, 0x09, 0x11, 0x89, 0xCB, 0x9D, 0xC9, 0x69, 0xF1, 0x6D, 0xD1, 0x7D, 0x89, 0xD9, 0xB5, 0x59, 0x91, 0x59, 0xB1, 0x31, 0x59, 0x6D, 0xD1, 0x8B, 0x21, 0x9D, 0xD5, 0x3D, 0x19, 0x11, 0x79, 0xDD]
i=0
j=len(arr)-1
while i<j:
arr[i],arr[j]=arr[j],arr[i]
i+=1
j-=1
v2=0
flag=[]
for i in range(43):
for z in range(256):
v2=0
for j in range(8):
if z&(1<<j):
v2|=1<<(8-j-1)
if v2==arr[i]:
flag.append(z)
print(flag)
w=""
for i in range(len(flag)):
w+=chr((~flag[i]&0xff))
print(w)

这题感觉也算白给的,一个一个的去找等式,一开始方向错了,以为要用z3,后面意识到是根据自己的邮箱来求key,就变得挺清晰的了,最后两个字母我是直接爆破了,因为逆向推出去,那两个字母只要满足了,就可以过,所以就写脚本。。脚本被我删了,因为当时本地过了,服务器过不去,M大说可能是环境问题,我就放弃了,理解题目意思还算简单的。
第一次遇到这种提交是nc连接的,后面才理解这种程序一般跑完会生成flag的文件,如果在本地就可以得出flag意味着,可以通过爆破,patch下,得到那个flag,我就这么干了,后面想了想,确实。
crypto:
1.

# -*- coding: utf-8 -*-
"""
Created for Spring 2020 CTF
Cryptography 0
10 Points
Welcome to my sanity check. You'll find this to be fairly easy.
The oracle is found at umbccd.io:13370, and your methods are:
flg - returns the flag
tst - returns the message after the : in "tst:..."
@author: pleoxconfusa
"""
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('crypto.ctf.umbccd.io', 13370)
sock.connect(server_address)
#available methods: flg, tst.
msg = 'tst:hello'
sock.sendall(msg.encode())
data = sock.recv(1024)
print(data.decode())
sock.close()
看懂英文就知道了,这种和平常那种校赛不是一个东西,加密和解密的,方法就给你封装好了,理解思想就可以得到flag,还是挺友好的。
flg是返回flag的值,把程序照着样子改一下,跑就出来。
2.剩下三题,我有点忘记了,反正算简单了,看的懂英文就出来了。第4题算是学到一个AES-CBC模式,这加密是将原文分成几个块,有个初始向量,第一块和初始向量异或,再用密钥加密,第二块和第一块密文异或,再用密钥加密。
以此类推。
DawgCTF wp(re和crypto)的更多相关文章
- 第二届 BJD wp(reverse和crypto)
re 1.第一题拖入ida,flag就是直接明文摆着 2.第二题是8086的程序,拖入ida,发现有个jmp无限跳转,可能是段寄存器被修改了,ida无法将后面的汇编识别出来,所以后面才有很多无效数据, ...
- bugku crypto wp上半部分汇总
1.滴答~滴 摩斯码,在线解开. 2. 栅栏密码,在线解就出flag了. 3. Ook解密,由.?!Ook组成密文,在线网站解密 4.这不是摩斯密码 有点像jsfuck,发现又不是,因为不会出现大于号 ...
- MRCTF (re和crypto)wp
RE: 一.PixelShooter(这题比赛我居然没看,靠,血亏,所以做不出来就不要一直死怼,这题挺好写的,) unity一般是用c#写的,刚好又是apk,可以用dnspy来反编译看看,在源码中找到 ...
- BUUCTF CRYPTO部分题目wp
对密码学了解不多,做一下熟悉熟悉 1,看我回旋踢 给的密文synt{5pq1004q-86n5-46q8-o720-oro5on0417r1} 简单的凯撒密码,用http://www.zjslove. ...
- CG-CTF CRYPTO部分wp
1,easybase64解密得flag 2,keyboard键盘码,在键盘上画画得flag:areuhack 3,异性相吸根据提示,写脚本 with open('密文.txt')as a: a=a.r ...
- bugku Crypto 下半部分wp
1. 百度托马斯这个人居然还发明了一种轮转的加密法,发现原理是,他将很多行乱序的26个字母,插到一根柱子上,参考糖葫芦的样子,可以旋转每一行,设置自己要发送的明文后,向对方发送乱码的一列,对方只要将这 ...
- Wechall 部分WP
前言: 开始打CTF,掌握一些新的姿势与知识. 这里我选择的平台是Wechall.这里从简单到难 WP部分: Training: Get SourcedAnswer: 查看网页源代码 Training ...
- 护网杯圆满结束,还不满足?不如来看看大佬的WP扩展思路~
护网杯预选赛 WP转载自:https://qingchenldl.github.io/2018/10/13/%E6%8A%A4%E7%BD%91%E6%9D%AFWP-BitPwn/#more WEB ...
- BUUCTF 部分wp
目录 Buuctf crypto 0x01传感器 提示是曼联,猜测为曼彻斯特密码 wp:https://www.xmsec.cc/manchester-encode/ cipher: 55555555 ...
随机推荐
- 链路追踪_SkyWalking的部署及使用
关于链路追踪,目前比较主流是Cat,Zipkin,SkyWalking等这些工具.这篇文章主要介绍关于SkyWalking工具的. 为什么用SkyWalking,因为它基本没有代码侵入,只这一点就足够 ...
- NLP文本分类
引言 其实最近挺纠结的,有一点点焦虑,因为自己一直都期望往自然语言处理的方向发展,梦想成为一名NLP算法工程师,也正是我喜欢的事,而不是为了生存而工作.我觉得这也是我这辈子为数不多的剩下的可以自己去追 ...
- Kafka 的安装及启动
Linux 服务器 CentOS 为例. Kafka 安装 获取下载地址,下载后解压. $ wget https://mirror.bit.edu.cn/apache/kafka/2.5.0/kafk ...
- 常用正则表达式RE(慕课网_Meshare_huang)
import re str1 = 'imooc python' # str1.find('l1') 输出: -1 # str1.find('imooc') 0 # str1.startswith('i ...
- deeplearning模型分析
deeplearning模型分析 FLOPs paddleslim.analysis.flops(program, detail=False) 获得指定网络的浮点运算次数(FLOPs). 参数: pr ...
- Camera Calibration 相机标定
Camera Calibration 相机标定 一.相机标定方法 在opencv中提供了一组函数用于实现相机的标定,标定返回的值包括:相机内参矩阵(fx fy xc yc).相机外参矩阵(R t)以及 ...
- CodeGen用户定义的扩展令牌
CodeGen用户定义的扩展令牌 用户定义的扩展令牌是一种特殊的令牌,开发人员可以确定令牌的名称以及在代码生成过程中遇到令牌时要插入的值. CodeGen支持多种机制,允许通过以下方式实现用户定义的令 ...
- 编译原理-确定有穷自动机(deterministic finite automata ,DFA)
是一个五元组 M=(S,∑,f,S0,F) 其中 S:有穷状态集 ∑:输入字母表(有穷) f:状态转换函数.f(S,a)=S' 是单值部分映射,每个状态面临一个输入符号时,转入的后继状态是确定的. S ...
- Java抽象类、继承及多态和适配器的实现
Java继承 方法重写是Java语言多态的特性,必须满足以下条件 在子类中,方法名称与父类方法名称完全相同 方法的参数个数和类型完全相同,返回类型完全相同 方法的访问修饰符访问级别不低于父类同名方法的 ...
- Webflux请求处理流程
spring mvc处理流程 在了解SpringMvc的请求流程源码之后,理解WebFlux就容易的多,毕竟WebFlux处理流程是模仿Servlet另起炉灶的. 下面是spring mvc的请求处理 ...