好 今日我们来刷ctf

查看文件发现是64位的文件 无壳 用ida64位打开它

发现gmpz_init_set_str,gmpz_powm这类函数
去搜一搜资料发现是GNU 高精度算法库 gmp文档资料
GMP(The GNU Multiple Precision Arithmetic Library)又叫GNU多精度算术库,是一个提供了很多操作高精度的大整数,浮点数的运算的算术库,几乎没有什么精度方面的限制,功能丰富。我刚接触到这个东西的时候是在学习PHP的过程中。GMP的主要目标应用领域是密码学的应用和研究、 互联网安全应用、 代数系统、 计算代数研究等。
一般用来搞密码学,比如像RSA之类的


int mpz_init_set_str (mpz t rop, const char *str, int base)
//rop = str(转为base进制数)
void mpz_powm (mpz t rop, const mpz t base, const mpz t exp, const mpz t [Function] mod)
//rop = base^exp%mod

mpz_powm像极了RSA
公钥加密”
密文 = 明文的e次幂模上n
公式:c = m^e mod n
那这题就是
v6 = v6^v5 % v4
密文v6 要等于 v7

v7 = 0xad939ff59f6e70bcbfad406f2494993757eee98b91bc244184a377520d06fc35
v5 = 65537
v4 = 103461035900816914121390101299049044413950405173712170434161686539878160984549

接就是

c = 0xad939ff59f6e70bcbfad406f2494993757eee98b91bc244184a377520d06fc35
e = 65537
n = 103461035900816914121390101299049044413950405173712170434161686539878160984549

RSA相关学习资料
RSA学习例子

c 密文
m 明文
e 公钥
d 私钥
q,p 俩质数

解密公式
m = c ^ d mod n
那就需要先求私钥d
ed = 1 mod φ(n)
φ(n) = (p - 1)(q - 1)
n = p * q
利用yafu 或者 利用网址 RSA n分解
这里利用yafu

.\yafu-x64.exe "factor(103461035900816914121390101299049044413950405173712170434161686539878160984549)"


p = 282164587459512124844245113950593348271
q = 366669102002966856876605669837014229419

上脚本 RSA python解密脚本学习

import binascii
import gmpy2n = int("103461035900816914121390101299049044413950405173712170434161686539878160984549")
p = gmpy2.mpz(282164587459512124844245113950593348271)
q = gmpy2.mpz(366669102002966856876605669837014229419)
e = gmpy2.mpz(65537)
phi_n = (p - 1)*(q - 1)
d = gmpy2.invert(e,phi_n)
c = gmpy2.mpz(0xad939ff59f6e70bcbfad406f2494993757eee98b91bc244184a377520d06fc35)
m = pow(c, d, n)
m_hex = hex(m)[2:]
print(binascii.a2b_hex(m_hex).decode(encoding="utf8"))
#suctf{Pwn_@_hundred_years}

BUUCTF RE [SUCTF2019] SignIn相关推荐

  1. buuctf——(SUCTF2019)SignIn

    1.查壳. 无壳,64位文件. 2.丢到IDA中反编译. 3.分析代码.最后是比较v6和v7 关键是_gmpz_powm这个函数 网搜了下,发现都是英文(枯了枯了),就求助了一下大佬. 这个函数和__ ...

  2. BUUCTF reverse题解汇总

    本文是BUUCTF平台reverse题解的汇总 题解均来自本人博客 目录 Page1 Page2 Page3 Page4 Page1 easyre reverse1 reverse2 内涵的软件 新年 ...

  3. REVERSE-PRACTICE-BUUCTF-7

    REVERSE-PRACTICE-BUUCTF-7 Youngter-drive [ACTF新生赛2020]rome [FlareOn4]login [SUCTF2019]SignIn Youngte ...

  4. BUUCTF:[BJDCTF2020]signin

    1.打开发现是16进制数,一转码发现就是flag.

  5. [buuctf] crypto全解——前84道(不建议直接抄flag)

    buuctf crypto 1.MD5 2.Url编码 3.一眼就解密 4.看我回旋踢 5.摩丝 6.[BJDCTF 2nd]签到-y1ng 7.password 8.变异凯撒 9.Quoted-pr ...

  6. 庆祝祖国成立72周年 做点题目之 BUUCTF Crypto 刷题

    BUUCTF 刷题之 Crypto 部分wp 大二了,事情很多,省赛在即,速刷题,强技能,展风采! 文章目录 BUUCTF 刷题之 Crypto 部分wp 一.这是什么 二.[HDCTF2019]bb ...

  7. BUUCTF的Web真题学习整理(一)

    目录 WEB1-WarmUp (任意文件包含漏洞) WEB2-高明的黑客(fuzz脚本) WEB3-easy_tornado (服务端模板注入(ssti攻击)) WEB4-Hack World(时间盲 ...

  8. gitlab不小心把sign-in取消了怎么恢复

    环境和版本 [root@linux-node1 etc]# ll /var/cache/yum/x86_64/7/gitlab-ce/packages/ total 292928 -rw-r--r-- ...

  9. BUUCTF寒假刷题-Web

    前言 寒假横向刷题(尽量) BUUCTF

最新文章

  1. lamp wordpress
  2. Android异步加载
  3. VC++ 进程间通信方法总结
  4. SEO三种职位类型:编辑型SEO、技术型SEO、营销型SEO详解
  5. android radiobutton_时隔一年,用新知识重构一个Android控件老库
  6. 页面间传输中文的乱码解决方法
  7. Java面试必问JVM调优,那.NET5呢?
  8. jzoj3847-都市环游【矩阵乘法】
  9. extjs 月份选择控件_Ext JS 4实现带week(星期)的日期选择控件(实战二)
  10. pthread_join()函数理解实验
  11. Linux四剑客详解——sed
  12. Windows自带利器:Rundll.exe高级应用
  13. java混淆书籍介绍,第二代Java混淆器Allatori功能介绍教程资源
  14. VMware如何开机自动启动虚拟机也启动
  15. hexo+yilia添加背景图片
  16. 最新版百度地图实现导航和语音播报(亲测有效)
  17. 董明珠“跳槽不用” VS雷军“复仇者联盟”,人才在内还是在外?
  18. 央行数字货币(数字人民币)DCEP
  19. 无线路由器(WIFI)经常掉线断网的可能的原因
  20. 三十而立的用友,未来的路将向何方?

热门文章

  1. 存在正文时不允许未命名的原型参数_用Swift开发macOS程序, 六、原型、格式与开发说明...
  2. 进制转换之二进制与十进制转换
  3. 如何理解蕴含式的真假?
  4. validation检查框架
  5. 华为服务器gpu芯片,GPU服务器推荐
  6. 网络教育专升本统考计算机分值,网教统考科目计算机应用基础之文字处理部分如何提高分数?...
  7. CloseableHttpClient设置Timeout 设置超时时间
  8. ThinkPad开机停留在boot menu界面、进不了系统的解决方法
  9. liferay开发环境搭建
  10. 2019最新《Python从入门到精通之30天快速学Python教程 》