iscc2018-Reverse-writeup
RSA256
解析公钥

yafu质因数分解

p=325045504186436346209877301320131277983
q=302825536744096741518546212761194311477
e=65537
生成
import math
import sys
from Crypto.PublicKey import RSA keypair = RSA.generate(1024) keypair.p = 325045504186436346209877301320131277983
keypair.q = 302825536744096741518546212761194311477
keypair.e = 65537
keypair.n = keypair.p * keypair.q
q = long((keypair.p-1) * (keypair.q-1))
i = 1
while True:
x=(q*i)+1
if (x % keypair.e == 0):
keypair.d = x / keypair.e
break
i += 1
print keypair.d #
private = open('private.pem','w')
private.write(keypair.exportKey())
private.close()
解密脚本
#coding=utf-8
import rsa,base64 with open('private.pem','r') as f:
privkey = rsa.PrivateKey.load_pkcs1(f.read().encode()) f1=open('encrypted.message1','r')
f2=open('encrypted.message2','r')
f3=open('encrypted.message3','r')
a=f1.read()
message1 = rsa.decrypt(a, privkey).decode().rstrip()
a=f2.read()
message2 = rsa.decrypt(a, privkey).decode().rstrip()
a=f3.read()
message3 = rsa.decrypt(a, privkey).decode().rstrip()
print message1+message2+message3 #flag{3b6d3806-4b2b-11e7-95a0-000c29d7e93d}
leftleftrightright
peid查壳

手动脱壳

ida查看伪代码

还原flag:Flag{this_was_simple_isnt_it}
My math is bad
elf64,ida查看,题目要求为两个四元方程组求解
from sympy import *
a=Symbol('a')
b=Symbol('b')
c=Symbol('c')
d=Symbol('d')
e=Symbol('e')
f=Symbol('f')
g=Symbol('g')
h=Symbol('h')
print solve([
a*b-c*d-2652042832920173142,
3*c+4*d-b-2*a-397958918,
3*d*a-b*c-3345692380376715070,
27*b+a-11*d-c-40179413815
],[a,b,c,d])[0]
print solve([
22*e-f-g+39*h-61799700179,
45*g-45*f+e+h-48753725643,
35*e+41*f-g-h-59322698861,
e-f+36*g-13*h-51664230587
],[e,f,g,h])
a=1869639009
b=1801073242
c=829124174
d=862734414
e=811816014
f=828593230
g=1867395930
h=1195788129
l=[a,b,c,d,e,f,g,h]
s=''
for i in l:
c=''
for j in range(4):
c+=chr(int(hex(i)[2+j*2:4+j*2],16))
s+=c[::-1]
print s #ampoZ2ZkNnk1NHl3NTc0NTc1Z3NoaGFG
obfuscation and encode
import string,base64
aphla='FeVYKw6a0lDIOsnZQ5EAf2MvjS1GUiLWPTtH4JqRgu3dbC8hrcNo9/mxzpXBky7+'
base='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
s='lUFBuT7hADvItXEGn7KgTEjqw8U5VQUq'
m=[2 ,2, 4, -5, 1 ,1, 3, -3, -1, -2, -3, 4, -1,0, -2, 2]
s1=''
for c in s:
s1+=base[aphla.index(c)]
s1=base64.b64decode(s1)
for i in string.printable:
for j in string.printable:
for k in string.printable:
for l in string.printable:
s=i+j+k+l
s0=''
for n in range(4):
v10=0
for o in range(4):
v10+=ord(s[o])*m[4*n+o]
s0+=chr(v10%256)
if s0==s1[0:4]:
print s,1
if s0==s1[4:8]:
print s,2
if s0==s1[8:12]:
print s,3
if s0==s1[12:16]:
print s,4
if s0==s1[16:20]:
print s,5
if s0==s1[20:24]:
print s,6
'''
s3='flag{dO_y0U_KNoW_0IlVm?}'
iscc2018-Reverse-writeup的更多相关文章
- BUGKU-逆向(reverse)-writeup
目录 入门逆向 Easy_vb Easy_Re 游戏过关 Timer(阿里CTF) 逆向入门 love LoopAndLoop(阿里CTF) easy-100(LCTF) SafeBox(NJCTF) ...
- ISCC2018 Reverse & Pwn writeup
Reference:L1B0 Re RSA256 春秋欢乐赛原题..flag都不变的 给了三个加密文件和公钥证书public.key,可以使用openssl进行处理 $openssl rsa -pub ...
- GKCTF 2021 Reverse Writeup
前言 GKCTF 2021所以题目均以开源,下面所说的一切思路可以自行通过源码对比IDA进行验证. Github项目地址:https://github.com/w4nd3r-0/GKCTF2021 出 ...
- ISCC2018(web)
ISCC2018 web writeup (部分) #web1:比较数字大小 只要比服务器上的数字大就好了 限制了输入长度,更改长度就好 #web2: 普通的代码审计,数组绕过 #web3:本地的诱惑 ...
- ISCC2018(misc)
ISCC2018 misc writeup(部分) 这些天做个了iscc题目,有些题目不是很难,网上都有相同的题或者类似的题目,但是我很菜,没做出来多少. #misc1:Where is the FL ...
- (未完成)catalyst-system WriteUp(2019暑假CTF第一周reverse)
目录 预备学习--Linux实践:ELF文件格式分析 一.概述 二.分析ELF文件头(ELF header) 三.通过文件头找到section header table,理解其内容 四.通过secti ...
- ISCC2018 writeup(web)
比较数字大小 F12 修改maxlength为4 web01 strcmp()函数遇到数组会返回NULL 而PHP是弱类型语言 在==比较的时候,如果有数值的话会先将字符串转换为数值在进行比较,而N ...
- 2016第七季极客大挑战Writeup
第一次接触CTF,只会做杂项和一点点Web题--因为时间比较仓促,写的比较简略.以后再写下工具使用什么的. 纯新手,啥都不会.处于瑟瑟发抖的状态. 一.MISC 1.签到题 直接填入题目所给的SYC{ ...
- 2018国赛 - Writeup(待补充)
10.0.0.55 Writeup Web 0x01 easyweb 解题思路 题目很脑洞 用户名admin 密码123456进去可得到flag(密码现在换了) 解题脚本 无 Reverse 0x02 ...
- ISCC 2018 Writeup
题解部分:Misc(除misc500).Web(除Only Admin.Only admin can see flag.有种你来绕.试试看).Reverse.Pwn.Mobile Misc( Auth ...
随机推荐
- js之数据类型(对象类型——构造器对象——日期)
Date对象是js语言中内置的数据类型,用于提供日期与时间的相关操作.学习它之前我们先了解一下什么是GMT,什么时UTC等相关的知识. GMT: 格林尼治标准时间(Greenwich Mean Tim ...
- 【小知识点】input输入框在安卓以及IOS手机中光标及字体不居中解决方法
问题根本:不要使用line-height垂直居中. 解决方法:可直接定义height,然后高度由上下padding值撑开. input { height: 1rem; padding: 1rem 0; ...
- JDBC 插入时间字段的值
ps.setTimestamp(6, new Timestamp(System.currentTimeMillis()));
- 分布式全局ID的几种生成方案
前言 在互联网的业务系统中,涉及到各种各样的ID,如在支付系统中就会有支付ID.退款ID等. 那一般生成ID都有哪些解决方案呢?特别是在复杂的分布式系统业务场景中,我们应该采用哪种适合自己的解决方案是 ...
- Category与Extension详解
自己做笔录 用来后来回顾.. (一) Category 1.什么是category category是objective-C 2.0之后添加的语言特性,别人口中的分类.类别其实都是指category. ...
- jmeter连接mysql数据库进行多条语句查询
前提工作: 1.在jmeter官网下载jmeter包(官网地址:https://jmeter.apache.org/).此外还需下载mysql驱动包,如:mysql-connector-java-5. ...
- JAVA 内存模型(主内存,工作内存)
JVM将内存组织为主内存和工作内存两个部分. 主内存是所有的线程所共享的,主要包括本地方法区和堆. 每个线程都有一个工作内存不是共享的,工作内存中主要包括两个部分: 1:一个是属于该线程私有的栈; 2 ...
- 【坑】maven编码配置
错误环境: maven 3.5.0 idea 2017.1.1 错误原因: 由于没有设置统一编码,导致与其他同事开发过程中出现乱码问题 解决方案: 在maven的 pom配置中properties节点 ...
- c语言之一个简单的《学生教师管理系统》小结记录(二)
本篇博文用来记录学生头/教师文件建立以及结构体链表创建及链表相关操作 首先是头文件的建立 头文件包含学生结构体以及链表结构 1.学生结构体建立 /****定义学生信息******/ typedef s ...
- nginx+tomcat实现负载均衡以及双机热备
还记得那些年吗? 还记得更新代码之后,服务器起不来被领导训斥吗?还记得更新代码,需要停机过多的时间被渠道部们埋怨吗?还记得更新代码,代码出错时自己吓个半死吗?于是我们聪明勤快的程序员,看着电影待到夜深 ...