[BUGKU][CTF][Reverse][2020] Reverse writeup 1-7 暂时肝不动了

Reverse 入门逆向
步骤: ida main函数 按R
在这里插入图片描述

Reverse signin
关键字:
知识点:Android逆向分析。(常用工具:安卓模拟器、JEB、Cyberchef、Androidkiller)
步骤:
1.用jeb打开,找到MainActivity,右键解析成java分析 ,需要反转后tostring()
在这里插入图片描述
2. 用jeb打开,找到MainActivity,右键解析成java分析
在这里插入图片描述
在这里插入图片描述
3.在线或者使用脚本反转 ,base64解码

a ='991YiZWOz81ZhFjZfJXdwk3X1k2XzIXZIt3ZhxmZ'b = ''b = a[::-1]print(b)

在这里插入图片描述
参考链接:https://www.cnblogs.com/myqzs/p/13724482.html

Reverse EASY re
关键字:ida
步骤:
1.main f5 F5翻译为伪C代码
在这里插入图片描述2.strcmp()对面输入的值是否等于xmmword_413E34位置的值,双击xmmword_413E34 跟过去,发现了flag (按R显示字符串)
在这里插入图片描述3.字符串拼接后反转 ,得到flag
DUTCTF{We1c0met0DUTCTF}

思路二:解压得到一个可执行文件,然后用Notepad++打开,直接搜索DUTCTF即可得到

Reverse Easy_vb
关键字:ida
步骤:
ida 打开 往下翻 MCTF 替换 flag
在这里插入图片描述

Reverse Timer(阿里CTF)
关键字:
知识点:
步骤:
1.下载文件发现是apk ,先安装运行下发现有一个倒计时,只是时间为200000秒。猜测是让时间走完获取flag。

2.JEB查看

package net.bluelotus.tomorrow.easyandroid;import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;public class MainActivity extends AppCompatActivity {int beg = (((int) (System.currentTimeMillis() / 1000)) + 200000);int k = 0;int now;long t = 0;public native String stringFromJNI2(int i);public static boolean is2(int n) {if (n <= 3) {if (n > 1) {return true;}return false;} else if (n % 2 == 0 || n % 3 == 0) {return false;} else {int i = 5;while (i * i <= n) {if (n % i == 0 || n % (i + 2) == 0) {return false;}i += 6;}return true;}}protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView((int) R.layout.activity_main);final TextView tv1 = (TextView) findViewById(R.id.textView2);final TextView tv2 = (TextView) findViewById(R.id.textView3);final Handler handler = new Handler();handler.postDelayed(new Runnable() {public void run() {MainActivity.this.t = System.currentTimeMillis();MainActivity.this.now = (int) (MainActivity.this.t / 1000);MainActivity.this.t = 1500 - (MainActivity.this.t % 1000);tv2.setText("AliCTF");if (MainActivity.this.beg - MainActivity.this.now <= 0) {tv1.setText("The flag is:");tv2.setText("alictf{" + MainActivity.this.stringFromJNI2(MainActivity.this.k) + "}");}MainActivity mainActivity;if (MainActivity.is2(MainActivity.this.beg - MainActivity.this.now)) {mainActivity = MainActivity.this;mainActivity.k += 100;} else {mainActivity = MainActivity.this;mainActivity.k--;}tv1.setText("Time Remaining(s):" + (MainActivity.this.beg - MainActivity.this.now));handler.postDelayed(this, MainActivity.this.t);}}, 0);}public boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.menu_main, menu);return true;}public boolean onOptionsItemSelected(MenuItem item) {if (item.getItemId() == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}static {System.loadLibrary("lhm");}
}

在这里插入图片描述
直接照着写一个即可,然后可以算出关键变量k
解密脚本,算出k = 1616384

def is2(n):if(n <= 3):if(n > 1):return Truereturn Falseelif(n % 2 == 0 or n % 3 == 0):return Falseelse:i = 5while(i * i <= n):if (n % i == 0 or n % (i + 2) == 0):return Falsei += 6return Truek=0for i in  range(200000,0,-1):k = k + 100 if is2(i) else k - 1
print(k)

在这里插入图片描述3. 实现的话,用Androidkiller打开项目,因为跳转后输出了The flag is,所以搜索该字符串,双击跟过去

3.1 第113行的if-gtz v0, :cond_0。 if-ltz是如果大于0跳转 ,那改成如果小于0跳转就跳过了200000秒等待了。对应的语句为if-ltz v0, :cond_0。
3.2 然后要找到赋值k的位置,看第129行-149行,因为k的值是在alictf{和}之间传入的。
看到了139行的的iget v3, v3, Lnet/bluelotus/tomorrow/easyandroid/MainActivity;->k:I,知道v3是k的值。
于是在下面赋值const v3,1616384

然后保存,编译,安装运行就出现flag。(jdk=1.8 apktool>=2.3)
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Reverse 逆向入门
关键字:winhex
步骤:

1.winhex 打开 复制黏贴到浏览器
在这里插入图片描述2.QR扫描出结果
在这里插入图片描述

Reverse 游戏过关
关键字:ida
步骤:
1.首先就是看运行遍程序,了解下程序流程以及关键字符串。然后打开ida
Shift+F12查看下字符串,然后双击过去
在这里插入图片描述2.按Cirt+X交叉引用显示调用位置
在这里插入图片描述
3.F5看下伪代码,两个数组按位异或再和0x13异或生成flag

array1 = [18,64,98,5,2,4,6,3,6,48,49,65,32,12,48,65,31,78,62,32,49,32,1,57,96,3,21,9,4,62,3,5,4,1,2,3,44,65,78,32,16,97,54,16,44,52,32,64,89,45,32,65,15,34,18,16,0]
array2 = [123,32,18,98,119,108,65,41,124,80,125,38,124,111,74,49,83,108,94,108,84,6,96,83,44,121,104,110,32,95,117,101,99,123,127,119,96,48,107,71,92,29,81,107,90,85,64,12,43,76,86,13,114,1,117,126,0]flag = ''
for i in range(len(array1)):flag+= chr(array1[i] ^ array2[i] ^ 0x13 )
print(flag)

Reverse
关键字:
知识点:
步骤:

Reverse
关键字:
知识点:
步骤:

Reverse
关键字:
知识点:
步骤:

Reverse
关键字:
知识点:
步骤:

Reverse
关键字:
知识点:
步骤:

Reverse
关键字:
知识点:
步骤:

参考链接:
https://www.codeqq.com/log/7Zjb2O7Z.html

https://blog.csdn.net/ahilll/article/details/84787700

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

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

相关文章

spring学习(4):spring管理对象之间的关联关系

接着上一节的课程继续学习 MesasageService 类 package hello;import org.springframework.stereotype.Component; //注解的加入 Component public class MesasageService {public MesasageService() {super();System.out.println("MessageService...");}/*** 执行打…

[Lua]LuaAPI整理

ref &#xff1a;https://blog.csdn.net/ouyangshima/article/details/43339571 LUA和C/C的沟通桥梁——栈 Lua生来就是为了和C交互的&#xff0c;因此使用C扩展Lua或者将Lua嵌入到C当中都是非常流行的做法。要想理解C和Lua的交互方式&#xff0c;首先要回顾一下C语言是如何处理…

[hackinglab][CTF][基础关][2020] hackinglab 基础关 writeup

在线工具&#xff1a;https://www.qqxiuzi.cn/daohang.htm 基础关 1 key在哪里&#xff1f; 知识点&#xff1a;F12查看源代码 步骤:F12 基础关 2 再加密一次你就得到key啦~ 知识点&#xff1a;ROT13 步骤: 基础关 3 猜猜这是经过了多少次加密&#xff1f; 关键字&#xf…

spring学习(5):spring简介

1什么是spring 核心概念 spring框架组成

算法四——哈希

文章出处&#xff1a;极客时间《数据结构和算法之美》-作者&#xff1a;王争。该系列文章是本人的学习笔记。 哈希算法的定义 文章来自极客时间。 参考网页 定义&#xff1a;将任意长度的二进制值串映射为固定长度的二进制值串。映射之后的二进制值串称为哈希值。 符合几点要…

spring学习(6):使用xml方式实现spring基本应用

接着上一节的课程继续学习 在resources文件下建立applicationconText applicationconText.xml文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3…

[burp][CTF]burp intruder爆破出现 Payload set 1: Invalid number settings的解决办法

这是一个软件bug 如果点击start attrack 后出现 Payload set 1: Invalid number settings 的提示&#xff0c;先点hex 后点 decimal 再开始start attrack&#xff0c;需要手动让它刷新。

数据结构五——二叉树

文章出处&#xff1a;极客时间《数据结构和算法之美》-作者&#xff1a;王争。该系列文章是本人的学习笔记。 1 树 1.1 概念 概念&#xff1a;树、根、父节点、子节点、叶子节点。 几个度&#xff1a;高度、深度、层。与实际生活中的这几个概念类比。 高度&#xff1a;从下往…

spring学习(7):加入log4g日志系统

点击show dependencies popup 修改pom.xml文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation&quo…

[hackinglab][CTF][脚本关][2020] hackinglab 脚本关 writeup

脚本关 1 key又又找不到了 关键字&#xff1a; 知识点&#xff1a; 步骤:点击提供的链接后&#xff0c;实际发生了两次跳转&#xff0c;key 在第一次跳转的网页中&#xff0c;key is : yougotit_script_now 脚本关 2 快速口算 关键字&#xff1a; 知识点&#xff1a;python基…

用递归树求解递归算法时间复杂度

文章内容、图片均来自极客时间。 递归代码复杂度分析起来比较麻烦。一般来说有两种分析方法&#xff1a;递推公式和递归树。 1 递推公式法 归并排序的递推公式是&#xff1a; merge_sort(p…r) merge(merge_sort(p…q), merge_sort(q1…r)) 终止条件&#xff1a; p > r …

spring学习(8):log4j.properties 详解与配置步骤

一、入门实例 1.新建一个JAva工程&#xff0c;导入包log4j-1.2.17.jar&#xff0c;整个工程最终目录如下 2、src同级创建并设置log4j.properties ### 设置### log4j.rootLogger debug,stdout,D,E### 输出信息到控制抬 ### log4j.appender.stdout org.apache.log4j.ConsoleAp…

[hackinglab][CTF][注入关][2020] hackinglab 注入关 writeup

服务器挂了 咕咕咕 参考链接&#xff1a;https://blog.csdn.net/weixin_41924764/article/details/107095963?utm_mediumdistribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_sourcedistribute.pc_relevant_t0.none-task-bl…

数据结构六——堆

文章出处&#xff1a;极客时间《数据结构和算法之美》-作者&#xff1a;王争。该系列文章是本人的学习笔记。 1 堆定义 1.1 定义和结构 堆是一个完全二叉树&#xff08;完全二叉树&#xff1a;除了叶子节点外每一层节点都是满的&#xff0c;最后一层的子节点都靠左排列&…

spring学习(9):idea的config配置

点开eventlog 点击之后 勾选 apply---ok

[hackinglab][CTF][上传关][2020] hackinglab 上传关 writeup

上传关 1 请上传一张jpg格式的图片 关键字&#xff1a; 步骤&#xff1a; 1.F12查看源码 2.输入网址 获得key http://lab1.xseclab.com/upload1_a4daf6890f1166fd88f386f098b182af/upload_file.php上传关 2 关键字&#xff1a;burp 知识点&#xff1a; 步骤&#xff1a;看源…

靠谱的Pycharm安装详细教程

如何在本机上下载和安装Pycharm&#xff0c;具体的教程如下&#xff1a; 1、首先去Pycharm官网&#xff0c;或者直接输入网址&#xff1a;http://www.jetbrains.com/pycharm/download/#sectionwindows&#xff0c;下载PyCharm安装包&#xff0c;根据自己电脑的操作系统进行选择…

第四十四期:Keep突然大裁员,回应称“属正常调整”!

10 月 24 日程序员节原本是程序员们最开心的一天&#xff0c;但 Keep 程序员却开心不起来&#xff0c;因为不少人突然面临失业危机。\ 作者&#xff1a;51CTO 10 月 24 日程序员节原本是程序员们最开心的一天&#xff0c;但 Keep 程序员却开心不起来&#xff0c;因为不少人突然…

第四十五期:万亿级日访问量下,Redis在微博的9年优化历程

Redis在微博内部分布在各个应用场景&#xff0c;比如像现在春晚必争的“红包飞”活动&#xff0c;还有像粉丝数、用户数、阅读数、转评赞、评论盖楼、广告推荐、负反馈、音乐榜单等等都有用到Redis。 作者&#xff1a;兰将州来源 一、Redis在微博的应用场景 Redis在微博内部…

数据结构七——图

文章出处&#xff1a;极客时间《数据结构和算法之美》-作者&#xff1a;王争。该系列文章是本人的学习笔记。 1 基本概念 顶点、边 微信&#xff1a;A和B是好朋友&#xff0c;B也和A是好朋友&#xff0c;A和B之间有条边。 入度&#xff1a;每个顶点链接的边的个数每个人好朋友…