Polarctf -- Re(1)
Polarctf之简单逆向
1. shell
用exeinfope查看下程序结构, 发现存在upx壳

用upx工具脱壳, upx.exe -d shell.exe

再使用IDAPro打开

#flag{crack_is_funny}
2. PE结构
将程序拖到010里, 修改为PE文件头:4D 5A 90 00

检测是否带壳

打开IDAPro进行分析

exp
a = "eobdx55:;4bgg30`:;b;e3`b`42f7`be`1b5b~"
flag = ""
for i in range(0, len(a)):
flag += chr(ord(a[i]) ^ 3)
print(flag)
#flag{66987add03c98a8f0cac71e4cafc2a6a}
3. 拼接
拖入到010中, 发现504b0304, 是个压缩包

添加后缀.zip, 得到拼接.exe, 拖入工具看看有没有加壳

没加壳, 拖入到IDAPro中分析

#flag{03ff6cf238c5cd8e7b4ee1e9567ad5a4}
4. 加加减减
拖入到010发现是PK头, 说明是一个压缩包

修改后缀名.zip, 发现加加减减.exe, 拖入工具看看是否有壳

发现没有加壳, 拖入到IDAPro进行分析

exp
a = "ek`fz5123086/ce7ac7/`4a81`6/87b`b28a5|"
flag = ""
for i in range(0, len(a)):
flag += chr(ord(a[i]) + 1)
print(flag)
#flag{62341970df8bd80a5b92a7098cac39b6}
5. 康师傅
还是一个压缩包, 解压得到一个1.exe, 查看是否有壳

没有加壳, 拖入IDAPro进行分析

exp
a = "oehnr8>?;<?:9k>09;hj00o>:<o?8lh;8h9l;t"
flag = ""
for i in range(0, len(a)):
flag += chr(ord(a[i]) ^ 9)
print(flag)
#flag{17625630b7902ac99f735f61ea21a0e2}
6. 另辟蹊径
运行程序, 这是一道改值题

使用工具cheatengine, 打开cheatengine --> 打开进程 --> 修改数值为100000 --> 扫描


修改值为1, 再次点击图标


#flag{60983973c2ab87436914d71000e4b4e4}
7. use_jadx_open_it
此题考察使用jadx反编译工具, 将下载好的文件拖入到jadx中

搜索main函数

打开MainActivity, 就能看到flag

#flag{go_to_study_android}
8. re2
将文件拖入到010中, 发现是一个ELF文件, 查看下其位数


是64位程序, 使用IDA64打开, 定位到main函数, 发现flag

#flag{e10adc3949ba59abbe56e057f20f883e}
9. layout
是一个apk文件, 使用jadx打开, 搜索main, 定位到MainActivity, 发现flag


试着提交这个flag, 发现是个错误的flag

直接搜素flag{

#flag{andoird_re}
10. Why32
查看程序是否有壳

将程序拖入到IDA64中进行分析, 发现加密过程

exp
a = "2gfe8c8c4cde574f7:c6c;:;3;7;2gf:"
flag = ""
for i in range(len(a)):
flag += chr(ord(a[i]) - 2)
print(flag)
#0edc6a6a2abc352d58a4a98919590ed8
明显的md5,使用cmd5网站得到最后结果

#flag{F1laig}
11. ?64
直接运行该程序

base64解码

将结果进行md5加密

#flag{5d15777a411724ee5d029caca1ca7298}
12. Sign Up
查看字符串, 双击数字, 找到加密前的账号和密码

查看Check_Data函数, 发现我们需要对账号前7位-1, 密码前四位-2即可

exp
a = "192168109"
b = "root"
res = ""
for i in range(7):
t = int(a[i]) - 1
res += str(t)
res += a[7:]
for j in range(4):
t = chr(ord(b[j]) - 2)
res += t
print(res)
#081057009pmmr

#flag{aa07caa2ff9e5b774bfca3b1f20c3ea0}
随机推荐
- Python基础-模块和面向对象-shutil、re、bs4、requests模块
概要: 模块 自定义模块(已经讲了) 内置模块 shutil re 正则表达式 第三方模块 requests 模块 bs4 模块 面向对象: 面向对象(Object-Oriented Programm ...
- day2-变量与数据类型
变量 概念:程序的基本组成单位 定义: 指定变量类型 根据值自行判断变量类型(类型推导) 省略var,定义赋值 var i int var i = 10 i, j := 20, 10 数据基本类型 基 ...
- Redis主从、哨兵
之前安装了redis,但是单节点redis不可靠,现在搭建redis主从,提高可用性. 一.搭建一主二从 redis主从其实是读写分离,主节点写数据,从节点读数据. 1.准备三台redis机器.red ...
- sql server 与 mysql 中常用的SQL语句区别
sql server 与 mysql 的区别 由于博主之前学过mysql,目前在学习SQL server,原来以为这两个数据库之间的sql语句应该不会有太大区别.但是学sql server(用的版 ...
- python3 ModuleNotFoundError: No module named 'CommandNotFound'
前言 python3 报错:ModuleNotFoundError: No module named 'CommandNotFound' 这是 linux 安装多版本 python 时的一个遗留问题, ...
- SQL 常见优化指南
这一章介绍SQL常见的优化,一共30条 第一条 对查询优化,要尽量的避免全表扫描,首先应该考虑在where以及order by 涉及的列上建立索引. 第二条 应尽量避免在where子句中对字段的nul ...
- Joker 智能开发平台:低代码开发的革新力量
在软件开发领域,开发效率与灵活性始终是开发者们追求的核心目标.随着技术的迅猛发展,低代码开发平台逐渐成为行业焦点,而 Joker 智能开发平台凭借其卓越的性能和创新的功能,脱颖而出,为开发者们带来了前 ...
- CentOS 版本选择:DVD、Everything、LiveCD、Minimal、NetInstall
CentOS 7.X,主要是下载的时候有很多版本供选择,如何选择? DVD版:这个是常用版本,就是普通安装版了,推荐大家安装.里面包含大量的常用软件,大部分情况下安装时无需再在线下载,体积为4G.Ev ...
- bug|初始化项目|sass-loader报错:TypeError: this.getResolve is not a function at Object.loader
Module build failed: TypeError: this.getResolve is not a function at Object.loader的解决 npm uninstall ...
- BUUCTF---萌萌哒的八戒(猪圈密码)
1. 问题 2.知识点 猪圈密码 3.解题 对应解题,套上flag{whenthepigwanttoeat}