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 ...
随机推荐
- gogs 搭建
sudo apt-get install nginx sudo apt-get install git sudo apt-get install mysql-server mysql -u root ...
- JavaScript-->基础类型和引用类型的区别
先了解一下数组的基础知识:附代码(数组属于引用类型的对象) <!DOCTYPE html> <html lang="en"> <head> &l ...
- C# webserver实现短信发送(移动)
近端时间接了个需求在原来的OA办公系统中添加一个发送短信功能.(既然需要发送短信那肯定要申请一个发送短信的账号,我这里是以移动mas为列子) c#的weserver需要选协议WS.其他的基本不用怎么填 ...
- 安卓进阶之自定义View
目录 安卓进阶之自定义View 自定义View的工作流程和内容 工作流程 测量阶段和布局阶段的工作内容 View 和 ViewGroup 在测量阶段和布局阶段的区别 绘制阶段的工作内容 上手:实现继承 ...
- 14.SpringMVC核心技术-类型转换器
类型转换器 在前面的程序中,表单提交的无论是 int 还是 double 类型的请求参数,用于处理该请求 的处理器方法的形参, 均可直接接收到相应类型的相应数据,而非接收到 String 再手工转换. ...
- XGBOOST in WIN64 安装
参考:https://blog.csdn.net/zyghs/article/details/50897716 环境 platform:windows 10,64位 Python: Python3.7 ...
- Dart中的匿名方法与自执行方法
void main() { // 匿名方法 var printSomethings = () { print("somethings"); }; printSomethings() ...
- 说一下 HashMap 的实现原理?(未完成)
说一下 HashMap 的实现原理?(未完成)
- Windows&Appium&Java&Python自动化测试-配置开发环境
摘要 本篇博文,主要介绍借助Appium做移动端自动化测试的开发环境搭建,包括Java和Python Java环境:Appium+Maven+Idea+TestNG+Reportng Python环境 ...
- async 与 await
async 关键字 1.含义:表示函数是一个异步函数,意味着该函数的执行不会阻塞后面代码的执行 2.定义与调用 async function hello (flag) { if (flag) { re ...