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 ...
随机推荐
- Python 数字(函数)
Python支持4种不同数值类型: 整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点. 长整型(long integers) - 无限大小的整数,整数最后是一个大写或小写的L. 浮 ...
- javascript 利用数组制作分页效果
代码 参数: pageSize:一页的总数 currentPage:当前的页数 skipNum:跳过的数量 arr:数组 返回值: newArr分页后的数组 var pagination = func ...
- Div实现水平垂直居中
在实际应用中很多地方不仅要求实现元素的水平居中或者垂直居中效果,还可能会在水平方向和垂直方向上都要实现居中效果,下面就简单介绍几种元素水平垂直居中的方法(注:不同的方法会存在一些优缺点以及兼容性问题) ...
- ajax 传参数 java后台接收
- extension(类扩展)和 category(类别)
extension(类扩展) 简单来说,extension在.m文件中添加,所以其权限为private,所以只能拿到源码的类添加extension.另外extension是编译时决议,和interfa ...
- composer安装学习
Packagist 镜像 网站地址 http://www.phpcomposer.com/ 请各位使用本镜像的同学注意: 本镜像已经依照 composer 官方的数据源安全策略完全升级并支持 http ...
- Delphi VCL类结构
- 将excel表格导入到DataGridView
using System.Data.OleDb; 添加一个button控件,一个textBox控件,用于显示选择路径 private void loadxls() { String fileName ...
- HDU - 3506 Monkey Party
HDU - 3506 思路: 平行四边形不等式优化dp 这不就是石子归并(雾 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma G ...
- kotlin语言boolean
其实大部分语言的boolean都差不多,为了突出基础的重要性这里还是学习一下,光语法来说没啥可学的,看一眼就会了,这里以解决实际问题来实践下boolean,下面以小学.初中.高中的数学填空题做为练习的 ...