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 ...
随机推荐
- 设计模式风格<一>;回调风格
主程序,是一个人,有一个类是同事: static void Main(string[] args) { Console.WriteLine("Hello Go to Lunch?" ...
- 弹性盒模型display:flex
Flex布局意为"弹性布局",用来为盒模型提供更多灵活性.此外,Flex定义的容器可以对块级元素(display: flex;)或行内元素(display: inline-flex ...
- 从零开始使用mocha测试
mocha 需要在node环境下跑,请确保已经安装了node 1.新建一个文件夹 test 2.命令行切换到test目录下,执行命令:npm init ,出现选择按enter,一系列选择完成之 ...
- Java基础加强-日志
/*日志*/ 从功能上来说,日志API本身所需求的功能非常简单,只需要能够记录一段文本即可 API的使用者在需要记录时,根据当前的上下文信息构造出相应的文本信息,调用API完成记录.一般来说,日志AP ...
- 7.使用EXPLAIN 来分析SQL和表结构_1
explain:查看执行计划 使用explain 关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的 分析你的查询语句或是表结构的性能瓶颈 使用explain 可以获 ...
- Python学习记录5-面向对象
OOP 思想 以模块化思想解决工程问题 面向过程 vs 面向对象 由面向过程转向面向对象 常用名词 OO:面向对象 ooa:分析 ood:设计 oop:编程 ooI:实现 ooa -> ood ...
- CAFFE(FAQ.1):Ubuntu 配置caffe 框架之数据库读取错误:ImportError: No module named lmdb解决办法
Z: 在安装了caffe框架后需要读取大量的数据进行学习训练.比如在MNIST识别训练中,一般直接读图片会比较耗时,我们一般将图片转存为数据库中.目前主流的数据库有以下两种选择: LevelDB Lm ...
- VLC 可能的 XML parser error 解决
由于 VLC 设置不当 (通常是动了 skin 选项……),再次加载时 VLC 不能正常启动,并报如下错误: [00007f7dd003b670] xml xml reader error: XML ...
- 通过轻量级终端工具Tera Term远程向linux操作系统上传war文件
通过轻量级终端工具Tera Term远程向linux操作系统上传war文件 1.打开Tera Term终端工具,并输入正确的远程机器的IP地址以及端口号: 2.输入正确的用户名和密码进入到linux操 ...
- Python&Selenium 数据驱动【unittest+ddt+mysql】
一.摘要 本博文将介绍Python和Selenium做自动化测试的时候,基于unittest框架,借助ddt模块使用mysql数据库为数据源作为测试输入 二.SQL脚本 # encoding crea ...