REVERSE-PRACTICE-CTFSHOW-5

REVERSE-PRACTICE-CTFSHOW-5

    • re2_归心
    • Mud
    • [吃鸡杯]ezmore
    • [吃鸡杯]有手就行

re2_归心

exe程序,运行后要求输入flag,ida分析
函数窗没找到主逻辑函数,shift+F12看字符串窗口
发现有java/lang/String,com/exe4j/runtime/WinLauncher等字符串
再想到提示"你应该见过python代码打包成的exe,猜猜这是什么语言"
这个exe应该是用exe4j生成的
re2-strings
exe4j生成exe的过程中要导入jar包,运行exe的时候实际上是运行导入的jar包
也就是说,运行exe的时候,jar包被取出存到了本地
用工具XSearch搜索"readme.jar",在本地的C盘下找到jar包
re2-jar
把找到的jar包丢进jadx-gui,可以看到明文flag
re2-flag

Mud

exe程序,运行后玩游戏,提示"打败王重阳"
upx脱壳,ida分析
一通乱找,在sub_402D9F->sub_402446->sub_402368处找到参数为"王重阳"
往下走,在sub_4023CE函数,最后的printf,找到flag
ida中显示中文的方法,选中数据,alt+a,create C-style
mud-flag

[吃鸡杯]ezmore

exe程序,运行后是个目录,可以浏览文件,下载文件
选项1不能直接看到flag
选项2下载flag文件需要下载码
ida分析,
main->dd922ad47494fc02c388e12c00eacDownload
输入的下载码进入e2edef40ecaa776b8d32d58416998验证
ezmore-input
e2edef40ecaa776b8d32d58416998中,传入的下载码需要和程序生成的Str2比较
ezmore-check
直接在比较的if处下断点,起调试
选项2,输入文件编号8,随便输入下载码(不能是0)
程序断下来后,可以看到Str2为"neft"
再次运行exe,flag为md5(“neft”)==fc425a880deaaa7ffe4777a6232c61a3
ezmore-flag

[吃鸡杯]有手就行

exe程序,运行后输入,ida分析
输入的长度为27,然后验证输入
hands-main
check实际上就是对输入进行前向异或的运算,然后和已知的Buf2比较
在这里插入图片描述
写脚本解,结果是fake flag

ans=[99,23,113,2,106,5,114,9,109,2,93,36,75,62,97,13,100,15,106,53,83,50,89,60,3,60,65]
for i in range(len(ans)-1,0,-1):ans[i]^=ans[i-1]
print("".join(chr(i) for i in ans))
#ctfshow{do_you_like_fake??}

然后在函数窗发现sub_401F20函数
sub_401F20->sub_4014D0是RC4的初始化函数,不过在第10行有点改动
密钥为"keykeykey"
hands-rc4init
sub_401F20->sub_401600,找到密文unk_403000
直接解改掉初始化的RC4,并没有得到flag
sub_401F20->sub_4013D0看到还有个"+7"的运算
hands-plus
将解RC4出来的结果再减去7,即可得到flag

#include<stdio.h>
void rc4_init(unsigned char* s, unsigned char* key, unsigned long Len_k) //初始化函数
{int i = 0, j = 0;char k[256] = { 0 };unsigned char tmp = 0;for (i = 0; i < 256; i++) {s[i] = 256 - i;k[i] = key[i % Len_k];}for (i = 0; i < 256; i++) {j = (j + s[i] + k[i]) % 256;tmp = s[i];s[i] = s[j];s[j] = tmp;}
}
void rc4_crypt(unsigned char* Data, unsigned long Len_D, unsigned char* key, unsigned long Len_k) //加解密
{unsigned char s[256];rc4_init(s, key, Len_k);int i = 0, j = 0, t = 0;unsigned long k = 0;unsigned char tmp;for (k = 0; k < Len_D; k++) {i = (i + 1) % 256;j = (j + s[i]) % 256;tmp = s[i];s[i] = s[j];s[j] = tmp;t = (s[i] + s[j]) % 256;Data[k] = Data[k] ^ s[t];}
}
void main()
{unsigned char key[] = "keykeykey";						unsigned long key_len = sizeof(key) - 1;unsigned char data[] = { 0xDC, 0x47, 0x7F, 0x6E, 0x9A, 0xD8, 0x60, 0x77, 0xF4, 0xB0,0x8C, 0x54, 0xB0, 0xAA, 0x26, 0x23, 0x02, 0x42, 0x8E, 0xBA,0x90, 0x8C, 0xAB, 0x86, 0x24, 0x6E, 0xF8 };rc4_crypt(data, sizeof(data), key, key_len);for (int i = 0; i < sizeof(data); i++){printf("%c", data[i]-7);}
}
//ctfshow{y0u_g0t_t4e_5ecret}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

进程、线程和协程的理解

进程、线程和协程之间的关系和区别也困扰我一阵子了&#xff0c;最近有一些心得&#xff0c;写一下。 进程拥有自己独立的堆和栈&#xff0c;既不共享堆&#xff0c;亦不共享栈&#xff0c;进程由操作系统调度。 线程拥有自己独立的栈和共享的堆&#xff0c;共享堆&#xff0…

PWN-PRACTICE-BUUCTF-2

PWN-PRACTICE-BUUCTF-2pwn1_sctf_2016jarvisoj_level0ciscn_2019_c_1[第五空间2019 决赛]PWN5pwn1_sctf_2016 main函数中执行vuln函数 fgets限制了输入的长度&#xff0c;不足以构成栈溢出 通过将输入中的字符"I"替换成"you"&#xff0c;增加长度&#xf…

C#接口汇总

1、IComparable和IComparer接口 用于比较和排序 IComparable 可比较的&#xff0c;实现该接口的类&#xff0c;便具有“可比较的”特性。 IComparer 比较器&#xff0c;实现该接口的类&#xff0c;是一个比较器&#xff0c;可以将其嵌入“类”中&#xff0c;使类具有“可比较的…

PWN-PRACTICE-BUUCTF-3

PWN-PRACTICE-BUUCTF-3[OGeek2019]babyropciscn_2019_n_8get_started_3dsctf_2016jarvisoj_level2[OGeek2019]babyrop 简单的ret2libc&#xff0c;构造rop main函数中读取一个随机数到buf中&#xff0c;传入sub_804871F 用"\x00"来绕过strlen和strncmp&#xff0c;b…

c#中常用集合类和集合接口之接口系列【转】

常用集合接口系列&#xff1a;http://www.cnblogs.com/fengxiaojiu/p/7997704.html 常用集合类系列&#xff1a;http://www.cnblogs.com/fengxiaojiu/p/7997541.html 大多数集合都在System.Collections&#xff0c;System.Collections.Generic两个命名空间。其中System.Colle…

PWN-PRACTICE-BUUCTF-4

PWN-PRACTICE-BUUCTF-4ciscn_2019_en_2bjdctf_2020_babystacknot_the_same_3dsctf_2016[HarekazeCTF2019]baby_ropciscn_2019_en_2 这题和ciscn_2019_c_1一模一样 栈溢出ret2libc&#xff0c;encrypt函数里的异或运算不用管 from pwn import * context.log_level"debug&…

PWN-PRACTICE-BUUCTF-5

PWN-PRACTICE-BUUCTF-5jarvisoj_level2_x64ciscn_2019_n_5others_shellcodeciscn_2019_ne_5jarvisoj_level2_x64 这题和[HarekazeCTF2019]baby_rop几乎一模一样 from pwn import * #context.log_level"debug" ioremote(node4.buuoj.cn,27023) elfELF(./level2_x64)…

Scrum敏捷开发沉思录

计算机科学的诞生&#xff0c;是世人为了用数字手段解决实际生活中的问题。随着时代的发展&#xff0c;技术的进步&#xff0c;人们对于现实世界中的问题理解越来越深刻&#xff0c;描述也越来越抽象&#xff0c;于是对计算机软件的需求也越来越高&#xff0c;越来越复杂&#…

PWN-PRACTICE-BUUCTF-6

PWN-PRACTICE-BUUCTF-6铁人三项(第五赛区)_2018_ropbjdctf_2020_babyropbabyheap_0ctf_2017pwn2_sctf_2016铁人三项(第五赛区)_2018_rop vulnerable_function函数中read构成栈溢出&#xff0c;ret2libc from pwn import * context.log_level"debug" ioremote(node4…

PWN-PRACTICE-BUUCTF-7

PWN-PRACTICE-BUUCTF-7jarvisoj_fmciscn_2019_s_3SROP解法ret2csu解法bjdctf_2020_babystack2[HarekazeCTF2019]baby_rop2jarvisoj_fm 格式化字符串漏洞&#xff0c;可以测出我们的输入在栈上的偏移为11 自己构造或者使用fmtstr_payload构造payload均可&#xff0c;目标是让x4…

Axure教程 axure新手入门基础(3) 简单易上手

(三)Axure rp元件的触发事件 l OnClick(点击时): 鼠标点击事件&#xff0c;除了动态面板的所有的其他元件的点击时触发。比如点击按钮。 l OnMouseEnter(鼠标移入时): 鼠标进入到某个元件范围时触发&#xff0c;比如当鼠标移到某张图片时显示该图片的介绍。 l OnMouseOut(鼠标移…

PWN-PRACTICE-BUUCTF-8

PWN-PRACTICE-BUUCTF-8ciscn_2019_es_2jarvisoj_level3ez_pz_hackover_2016jarvisoj_tell_me_somethingciscn_2019_es_2 栈溢出&#xff0c;但是只能溢出8字节&#xff0c;覆盖ebp和eip&#xff0c;考虑stack pivot&#xff0c;即栈迁移 参考&#xff1a;pwn-ciscn_2019_es_2(…

使用Nuget 安装指定版本package或者更新package到指定版本

最近在琢磨MVC和EntityFramework,使用的VS是2013版的&#xff0c;在Nuget的GUI界面下安装了EntityFramework(默认安装最新版的&#xff0c;怎么安装指定版本还没找到),按照MVC的示例项目MusicStore逐步做的过程中发现MVC4不支持EntityFramwok 6。 尝试去更新MVC版本各种失败&a…

PWN-PRACTICE-BUUCTF-9

PWN-PRACTICE-BUUCTF-9[Black Watch 入群题]PWNjarvisoj_level4picoctf_2018_rop chain[ZJCTF 2019]EasyHeap[Black Watch 入群题]PWN vul_function可以向.bss段上写数据&#xff0c;还可以构成栈溢出&#xff0c;但只能溢出8字节&#xff0c;覆盖ebp和eip 利用两次栈迁移 第一…

CSS一个元素同时使用多个类选择器(class selector)

CSS类选择器参考手册 一个元素同时使用多个类选择器 CSS中类选择器用点号表示。实际项目中一个div元素为了能被多个样式表匹配到&#xff08;样式复用&#xff09;&#xff0c;通常div的class中由好几段组成&#xff0c;如<div class"user login">能被.user和…

css 块元素、内联元素、内联块元素

元素就是标签&#xff0c;布局中常用的有三种标签&#xff0c;块元素、内联元素、内联块元素&#xff0c;了解这三种元素的特性&#xff0c;才能熟练的进行页面布局。 块元素&#xff1a; 块元素&#xff0c;也可以称为行元素&#xff0c;布局中常用的标签&#xff0c;如&…

PWN-PRACTICE-BUUCTF-10

PWN-PRACTICE-BUUCTF-10jarvisoj_level3_x64bjdctf_2020_babyrop2hitcontraining_uafjarvisoj_test_your_memoryjarvisoj_level3_x64 64位elf的栈溢出&#xff0c;ret2csu from pwn import * #context.log_leveldebug #ioprocess(./jarvisoj_level3_x64) ioremote(node4.buuo…

PWN-PRACTICE-BUUCTF-11

PWN-PRACTICE-BUUCTF-11bjdctf_2020_routerpicoctf_2018_buffer overflow 1pwnable_orwwustctf2020_getshellbjdctf_2020_router Linux 系统可以在一个命令行上执行多个命令:; --如果命令被分号(;)所分隔&#xff0c;那么命令会连续的执行下去&#xff0c;就算是错误的命令也会…

Redis与关系型数据库的同步问题

Redis是一个高性能的key-value数据库。 redis的出现&#xff0c;很大程度补偿了memcached这类key-value存储的不足&#xff0c;在部分场合可以对关系数据库起到很好的补充作用。它提供了Python&#xff0c;Ruby&#xff0c;Erlang&#xff0c;PHP客户端&#xff0c;使用很方便。…

Delphi各个版本和发展历史

Delphi&#xff0c;是Windows平台下著名的快速应用程序开发工具(Rapid Application Development&#xff0c;简称RAD)。它的前身&#xff0c;即是DOS时代盛行一时的“BorlandTurbo Pascal”&#xff0c;最早的版本由美国Borland&#xff08;宝兰&#xff09;公司于1995年开发。…