Reverse

article/2025/9/13 23:34:46

IDA中文不显示解决

参考链接
VScode中文乱码解决参考链接
(1 ~ 10攻防世界)(11~20为Buu,近乎为shift + F12查找字符串)

1. xxxorrr

题目链接
题目WP
心得:可能会有其它隐藏函数对所需结果进行操作

2. SignIn

RSA算法介绍
c是密文,m是明文,e是公钥,d是私钥,n=pq
RSA

题目链接:其中用到GMP库
题目WP

3. IgniteMe

题目链接
题目WP

4. python-trade

题目链接
题目WP

5. 流浪者

题目链接
题目WP

6. csaw2013reversing2

题目链接
题目WP

7. BABYRE

题目链接
题目WP

input = "fmcd" + chr(0x7f) + "k7d;V`;np"
res = ''
for i, c in enumerate(input): # enumerate枚举,将其元素对应数组下标res += chr(ord(c) ^ i)
print(res)"""output
flag{n1c3_j0b}
"""

8. CTFshow re2

rc4加密
题目链接
题目WP

9. 666

题目链接
题目WP

10. re1

题目链接
简单WP

11. reverse1

Buuctf reverse1
题目wp

12. reverse2

Buuctf reverse2
题目WP

13. 内涵的软件

Buuctf 内涵的软件
题目wp

14. 新年快乐

Buuctf 新年快乐

  1. upx -d 脱壳
  2. 题目WP2

15. xor

Buuctf xor
tap1
IDA shift + e 提取static字符串

flag = ""
static = (102, 10, 107, 12, 119, 38, 79, 46, 64, 17,120, 13, 90, 59, 85, 17, 112, 25, 70, 31,118, 34, 77, 35, 68, 14, 103, 6, 104, 15,71, 50, 79,)
print('f', end = "")
for i in range(1, len(static)):flag += chr(static[i] ^ static[i - 1])
print(flag)

17. helloworld

下载文件为一个apk文件,用ApkIDE打开,查找main函数,发现flag
answer

18. reverse3

PE查壳,无壳,且为32为程序
IDA32位打开,找main函数,看反汇编有点麻烦,F5查看伪C代码,查看到关键位置
tap1
进入sub_4110BE函数,精确发现讯在大量的2,4移位,自己了解过base64加密解密,可得知其为类似base64加密,点击黄色区域查看base64表为ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
其中Str2e3nifIH9b_C@n@dH已知,for循环将字符串还原,还原后直接在线转换
tap2

p = ""
s = "e3nifIH9b_C@n@dH"
for i in range(len(s)):p += chr(ord(s[i]) - i)
print(p)

answer

19. 不一样的flag

下载文件打开,出现下图左侧结果,让我们输入,拖入IDA,伪代码显示如下右侧,简单分析
tap1
从以下25的字符串长度,以及移位4,1的特性,可简单绘制5X5的格子,*表示推箱人,#表示出口,1表示墙,由图可简单发现一条出路,按照路径进行推动,222441144222即为flag

m = "*11110100001010000101111#"
print(len(m))  # 25
'''* 1 1 1 10 1 0 0 00 1 0 1 00 0 0 1 01 1 1 1 #
'''

20. SimpleRev

这题有点意思,其在强制转换时考虑到了小端序存储等知识点
小端存序储示例:

存储12345678
按照字节存储(char): 12 34 56 78
按照字存储(word):34 12 78 56
按照双字存储(dword):78 56 34 12

进入题目,IDAF5伪代码,进入关键函数Decry(),关键步骤如下
tap1
tap2
红色方框发现其强制转换了,则小端序存储读其内存时就会发生错误,即上面所注释就不正确,这里还以 存储12345678 为例

  • 当从dword强转为char时,由于存储方式并没有改变,读取方式发生了改变,原来是小端序4字节读取,现今变为小端序1字节读取,所以此时text拼接,应将后面v9倒序,即 text = killshadow
  • 同理,倒过来依旧成立,数组在计算机的存储是按照其数据类型依次存储的,学过编程语言的应该都了解。char类型存储方式未改变,以dword的4字节方式来读取,再次将后面src倒序,即 key = ADSFKNDCLS

根据以上分析将key转为小写,Str2=textv1即可

key = 'adsfkndcls'
text = str2 = 'killshadow'
flag = ''
# 方法一,此方法更容易理解
for i in range(len(key)):for j in range(65, 122):if ord(text[i]) == (j - 39 - ord(key[i % 10]) + 97) % 26 + 97:flag += chr(j)break
print(flag)
# 方法二
for i in range(len(str2)):for j in range(10):m = ord(str2[i]) - 97 + 26 * j - 97 + 39 + ord(key[i])if (m > 64) & (m < 91):flag += chr(m)break
print(flag)

http://chatgpt.dhexx.cn/article/uHqRxp5H.shtml

相关文章

java中@Repeatable的理解

Repeatable是jdk8中新增的注解&#xff0c;使用如Spring中的ComponentScan注解。在没有Repeatable注解的的注解中&#xff0c;在同一个地方使用相同的注解会报错&#xff0c;有了此元注解注解的注解&#xff0c;就可以在同一个地方使用相同的注解。其官方文档如下 The annotati…

TS:解决docker无法启动,报:start request repeated too quickly for docker.service错误-2021.12.08(已解决)

目录 文章目录 目录1、报错现象2、解决办法3、总结关于我最后 1、报错现象 首先&#xff0c;我当前的环境是&#xff1a;docker 20.10.11,vmworkstation虚机 很奇怪&#xff0c;自己的docker用着用着就出现问题了&#xff0c;查看服务发现起不来&#xff0c;重启docker服务也…

【已解决】TF_REPEATED_DATA ignoring data with redundant timestamp for frame

目录 1 问题背景2 问题探索3 问题解决4 告别Bug 1 问题背景 环境&#xff1a;Ubuntu20.04 ROS-noetic 现象&#xff1a;打开Rviz与Gazebo加载机器人模型时&#xff0c;终端不停刷新警告TF_REPEATED_DATA ignoring data with redundant timestamp for frame&#xff0c;且在未施…

已解决(一分钟)TF_REPEATED_DATA ignoring data with redundant timestamp for frame base_footprint at time解决方案

<1>问题描述 前言-仿真实验需求&#xff1a;获取小车的全局坐标系下的位姿信息&#xff0c;因此使用gmapping建图&#xff0c;并使用地图服务调用发布&#xff0c;自己写了个节点将map坐标系添加到现有的TF树上&#xff0c;最终TF树见最后截图。 进入正题&#xff0c;想…

【Protocol Buffer】Protocol Buffer入门教程(五):repeated限定修饰符

00. 目录 文章目录 00. 目录01. 限定修饰符介绍02. 字段API分析03. 测试代码04. 编译和测试05. 参考 01. 限定修饰符介绍 repeated 代表可重复&#xff0c;我们可以理解为数组 syntax "proto3";//指定版本信息&#xff0c;不指定会报错message Person //message为…

protobuf入门教程(四):repeated限定修饰符

限定修饰符说明 repeated 代表可重复&#xff0c;我们可以理解为数组&#xff1a; syntax "proto3";//指定版本信息&#xff0c;不指定会报错message Person //message为关键字&#xff0c;作用为定义一种消息类型 {string name 1; //姓名int32 id 2; …

一个真·菜鸟理解的springmvc工作原理

1 springmvc的映射器和适配器 1.1springmvc的映射器 根据客户端请求的url&#xff0c;找到处理本次请求的handler&#xff08;处理器&#xff09;&#xff0c;将url和controller关联起来 1.2springmvc的适配器 对映射器查找到的controller中的方法进行调用。 第一种&#xff1…

【转】SpringMVC的工作原理图

SpringMVC的工作原理图&#xff1a; ##SpringMVC流程 1、 用户发送请求至前端控制器DispatcherServlet。 2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找)&#xff0c;生成处理器对象及处理…

SpringMVC工作原理及执行流程

一、SpringMVC简介 SpringMVC是一种基于Spring实现了Web MVC设计模式的请求驱动类型的轻量级Web框架&#xff0c;使用了MVC架构模式的思想&#xff0c;将web层进行职责解耦&#xff0c;并管理应用所需对象的生命周期&#xff0c;为简化日常开发&#xff0c;提供了很大便利。  …

SpringMVC工作原理图

1.用户发送请求至前端控制器DispatcherServlet(也叫中央处理器). 2.DispatcherServlet收到请求调用HandlerMappering处理器映射器 3.处理器映射器找到具体的处理器&#xff08;可以根据xml配置、注解进行查找&#xff09;&#xff0c;生成处理器对象及处理器拦截器&#xff08;…

servlet — SpringMVC工作原理

如下图&#xff0c;所有实线的部分都由 SpringMVC 框架实现&#xff0c;我们的代码只需要处理虚线的部分&#xff1a; 【总结】&#xff1a; DispatchServlet(请求分发器 / 前端控制器), 是SpringMVC的核心 1. 用户发起请求的时候调用前端控制器 DispatcherServlet&#xff1b…

SpringMVC 工作原理

0x00:请求流程图 首先,来看一下 SpringMVC 的整个请求流程,如下图: 0x01:步骤解析 SpringMVC 整体流程步骤解析: 1,用户去单击了某个请求路径,发起了一个 request 请求,这个请求会被 DispatcherServlet 前端控制器处理。 2,前端控制器 DispatcherServlet 去请求处…

SpringMVC工作原理nbsp;及注解说明

Spring MVC工作原理 及注解说明 SpringMVC框架介绍 1) spring MVC属于SpringFrameWork的后续产品&#xff0c;已经融合在SpringWeb Flow里面。 Spring框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的MVC 架构&#xff0c;可以选择是使用内置的Spring Web …

SpringMVC工作原理的介绍

1.原理图&#xff1a; 2.流程文字介绍&#xff1a; 1.用户向服务器发送请求&#xff0c;请求被Spring前端控制Servlet DispatcherServlet捕获&#xff1b; 2.DispatcherServlet对请求UR进行解析&#xff0c;得到请求资源标识符&#xff08;URI&#xff09;。然后根据该URI&…

SpringMVC工作原理(1)

大家好&#xff0c;今天和大家分享SpringMVC的相关知识&#xff0c;主要是对SpringMVC的工作原理做一些分析。 SpringMVC的工作流程如下&#xff1a; 接下来我们先来对其中的组件以及相应的功能来做简单介绍&#xff1a; 组件&#xff1a; 1.DispatcherServlet DispatcherSer…

SpringMVC工作原理详解

SpringMVC工作原理详解 在学习之前&#xff0c;先来两张神图镇楼 什么是MVC 经典MVC模式中&#xff0c;M是指业务模型&#xff0c;V是指用户界面&#xff0c;C则是控制器&#xff0c;使用MVC的目的是将M和V的实现代码分离&#xff0c;从而使同一个程序可以使用不同的表现形式…

springMVC工作原理(含图)

SpringMVC流程 1、 用户发送请求至前端控制器DispatcherServlet。 2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找)&#xff0c;生成处理器对象及处理器拦截器(如果有则生成)一并返回给Dis…

理清SpringMVC工作原理

一、首先&#xff0c;我们先来认识一下SpringMVC的主要组件 前端控制器&#xff08;DisatcherServlet&#xff09;:接收请求&#xff0c;响应结果&#xff0c;返回可以是json,String等数据类型&#xff0c;也可以是页面&#xff08;Model&#xff09;。 处理器映射器&#xff0…

SpringMVC工作原理及源码解析

SpringMVC工作原理及源码解析 一&#xff1a;SpringMVC原理图二&#xff1a;SpringMVC的主要组件1、前端控制器DispatcherServlet&#xff1a;2、处理器映射器HandlerMapping&#xff1a;3、处理器适配器HandlerAdapter&#xff1a;4、处理器Handler&#xff1a;5、控制器Contr…

SpringMVC工作原理和工作流程

在博客看见一编写的非常清晰的博客&#xff0c;对现在的注重开发层面不注重底层原理的还是有用处的。 原文出处&#xff1a;https://www.cnblogs.com/xiaoxi/p/6164383.html SpringMVC工作原理 SpringMVC的工作原理图&#xff1a; SpringMVC流程 1、 用户发送请求至前端控制…