MRCTF (re和crypto)wp
RE:
一.PixelShooter(这题比赛我居然没看,靠,血亏,所以做不出来就不要一直死怼,这题挺好写的,)
unity一般是用c#写的,刚好又是apk,可以用dnspy来反编译看看,在源码中找到了flag,应该要安装apk,玩一下,再来找线索,会更好,然后要去看控制类这块,一般核心代码在那边

二.here to go:
这题校内的是没加混淆的,可以直接找到入口函数,当时写题只会查找字符串,go这个语言特性是字符串是挤在一起的,没有反斜杠0,ida识别不出来,所以只能去找入口函数来分析,我之前就是被这个劝退了,其实还是挺简单的这题,如果能懂go这个特性的话,校外的,是有混淆的,找不到入口函数,是去掉了符号表,可以用一个脚本来还原
看了大佬的wp,可以通过区间来判断出,这个是在linux下编译,而且可以还原的

进入主函数,发现逻辑还算能读懂,虽然一堆函数不认识的2333,但是点进去那个变量,就发现了flag

剩下的题,和lin师傅交流了很久,感觉学到了很多东西,但是ida老是报错啊啊啊啊,网上都是安卓的动态,exe太少了,百度不到,自闭了,明天继续查一下
三.junk
这题算是我逆向很久的题了,通过这题学习了动态调试的魅力,尤其是加了花指令后,ida无法F5后,动态调试就很香,这题和名字一样,junkcode非常多,不得不说昂哥出题是真的骚,而且我ida的版本还有bug,无法本地调试,只能远程调试,以后做题也算多个思路吧,这变种的base64之前没遇到,看了下exp,好像也不是很难,现学了一下,真的是要耐心的看,几个动态调试常用快捷键盘alt + ctrl +k :patch;c转换成代码,d转换成数据(师傅好像更喜欢用d),p键创建新函数

先比较字符串的长度,patch一下,再下去调试。

每个字符都异或3

根据次数来调整向左移,还是右边移动,
然后调用一个FB1090函数,

是变种base64,字典换了个,或者搜索字符串时候就会发现一个 变形的base64的字典,这个再去看引用,基本能猜测出来。

这边就是比较了,中间一堆完全没啥用,昂哥牛逼,感觉学到了很多。
所以这边脚本的解密过程就变成了先求变种base64解密,再左移动和右移,再每个异或3
import base64
diy_base="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz)!@#$%^&*(+/"
diy_ci="%BUEdVSHlmfWhpZn!oaWZ(aGBsZ@ZpZn!oaWZ(aGBsZ@ZpZn!oYGxnZm%w"
base="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
flag=""
def rol(x):
return ((x<<4)&0xff)|((x>>4)&0xff)
for i in range(len(diy_ci)):
flag+=base[diy_base.index(diy_ci[i])]
flag+="=="
print(flag)
for i in range(len(flag)):
a=rol(flag[i])
a^=3
print(chr(a),end="")
MRCTF (re和crypto)wp的更多相关文章
- bugku crypto wp上半部分汇总
1.滴答~滴 摩斯码,在线解开. 2. 栅栏密码,在线解就出flag了. 3. Ook解密,由.?!Ook组成密文,在线网站解密 4.这不是摩斯密码 有点像jsfuck,发现又不是,因为不会出现大于号 ...
- BUUCTF Crypto
BUUCTF 几道crypto WP [AFCTF2018]Morse 简单的莫尔斯密码,最直观的莫尔斯密码是直接采用空格分割的点和划线,这题稍微绕了一下使用的是斜杠来划分 所以首先将斜杠全部替换为空 ...
- MRCTF 2020-“TiKi小组”
题目状态: OPEN - 正在试图解这道题CLOSED - 这道题还没有打开SOLVED - 解决了!鼓掌撒花! 赛事信息 Flag格式:MRCTF{}起止时间:2020-03-27 18:00:00 ...
- 2021羊城杯比赛复现(Crypto)
bigrsa 题目: from Crypto.Util.number import * from flag import * n1 = 10383529640908175186077053551474 ...
- BUUCTF Crypto_WP(2)
BUUCTF Crypto WP 几道密码学wp [GXYCTF2019]CheckIn 知识点:Base64,rot47 下载文件后,发现一个txt文件,打开发现一串base64,界面之后出现一串乱 ...
- MRCTF 2020 WP
MRCTF 2020 WP 引言 周末趁上课之余,做了一下北邮的CTF,这里记录一下做出来的几题的WP ez_bypass 知识点:MD5强类型比较,is_numeric()函数绕过 题目源码: I ...
- DawgCTF wp(re和crypto)
简单写写思路,想看详解的..我脚本有些丢失了..师傅请移步. 挂了个vpn,算正式打这种国际赛,全是英文.上去打了两天,昨晚晚上划水了一晚上补作业...,re那时候写出来三道,Potentially ...
- 第二届 BJD wp(reverse和crypto)
re 1.第一题拖入ida,flag就是直接明文摆着 2.第二题是8086的程序,拖入ida,发现有个jmp无限跳转,可能是段寄存器被修改了,ida无法将后面的汇编识别出来,所以后面才有很多无效数据, ...
- BUUCTF CRYPTO部分题目wp
对密码学了解不多,做一下熟悉熟悉 1,看我回旋踢 给的密文synt{5pq1004q-86n5-46q8-o720-oro5on0417r1} 简单的凯撒密码,用http://www.zjslove. ...
随机推荐
- Django框架中logging的使用
Django框架中logging的使用 日志是我们在项目开发中必不可少的一个环节,Python中内置的logging已经足够优秀到可以直接在项目中使用. 本文介绍了如何在DJango项目中配置日志. ...
- Yolov4性能分析(下)
Yolov4性能分析(下) 六. 权重更新 "darknet/src/detector.c"--train_detector()函数中: ...... /* 开始训练网络 */ f ...
- 重新整理 .net core 实践篇—————日志系统之结构化[十八]
前言 什么是结构化呢? 结构化,就是将原本没有规律的东西进行有规律话. 就比如我们学习数据结构,需要学习排序然后又要学习查询,说白了这就是一套,没有排序,谈如何查询是没有意义的,因为查询算法就是根据某 ...
- 9, java数据结构和算法: 直接插入排序, 希尔排序, 简单选择排序, 堆排序, 冒泡排序,快速排序, 归并排序, 基数排序的分析和代码实现
内部排序: 就是使用内存空间来排序 外部排序: 就是数据量很大,需要借助外部存储(文件)来排序. 直接上代码: package com.lvcai; public class Sort { publi ...
- MySQL:count()用法
语法 COUNT() 函数返回匹配指定条件的行数. COUNT(column_name) 语法 COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入): SELECT CO ...
- 免费版对象存储【minIO】CentOS部署实践记录 2021
好久没写,记录一下 1.背景 之前一直用的七牛,不过是收费的,然后有些定制化需求,可能比较看重预算,然后就有了这篇开源方式:minio 2.简介 官方文档:http://docs.minio.org. ...
- 工具篇:介绍几个好用的guava工具类
前言 平时我们都会封装一些处理缓存或其他的小工具.但每个人都封装一次,重复造轮子,有点费时间.有没有一些好的工具库推荐-guava.guava是谷歌基于java封装好的开源库,它的性能.实用性,比我们 ...
- 在Centos7下安装RabbitMQ
1.背景 不用多说,这东西好用! 2.安装 步骤一:下载安装包 链接:https://pan.baidu.com/s/1PIYI60wX6L7BtVyVft-vSA 提取码:1234 复制这段内容后打 ...
- csps2019AFO祭
预感可能是我写的最长的博客 Day 0 收拾收拾东西然后来机房各种颓废,因为很懒所以也不想敲板子从luogu随便看了看题就发现不会, 于是愉快的耸题解代码,然后快出发前接受来自各种老师的毒奶... ...
- 将Winform和wpf的界面转换为CPF代码用来实现跨平台
CPF的设计器里带界面代码转换功能,将运行中的Winform或者wpf的程序界面转换为cpf代码,主要转换控件类型和布局,默认支持的是常用的原生控件.不支持Netcore,只支持.Netframewo ...