首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
cpython
less
chat
hashset
buffer
get
post
join
jar
ascii
audio
require
vbscript
bit
web3
command
search
javascript
case
string
shell
schema
tree
utf-8
copy
timezone
hook
spring
emoji
eval
text
httprequest
future
数组
process
php
heap
golang
httpclient
loops
client
rsa
actionscrip
list
subset
typescript
python3
byte
cPlusPlus
cookie
scala
fetch
plugins
c语言
merge
iostream
bitmap
jsp
select
express
email
md5
object
triggers
stream
random
runtime
char
export
metadata
replace
web
int
foreach
include
split
request
uri
instance
当前位置:
开发笔记
>
编程语言
> 正文
合天网络安全实验室CTF实战演练中的逆向工程挑战题
作者:W蓝尾蝶SUH_435 | 来源:互联网 | 2024-11-11 21:02
近期在研究逆向工程,因此尝试了一些CTF题目。通过合天网络安全实验室的CTF实战演练平台(http://www.hetianlab.com/CTFrace.html),我对Linux逆向工程的掌握还不够深入,因此暂时跳过了RE300题目。首先从逆向100开始,将文件后缀名修改为.apk进行初步分析。这一过程不仅帮助我熟悉了基本的逆向技巧,还加深了对Android应用结构的理解。
最近搞逆向,就做做CTF题吧
挑战地址:http://www.hetianlab.com/CTFrace.html
对linux的逆向还没深入学习,所以re300暂时空着
逆向100
先把后缀改为.apk吧
安装看看吧,
输入密码,随便输入,点击Enter没任何反应,应该是输入正确后才会有提示flag什么的
那我们反编译看看
反编译就看到明文比较了
输入后直接出flag了
逆向200
打开看看,应该是先输入第一个password,正确了才让你输入第二个password,第一个错误了就直接退出了
查壳没有加壳
那我们下一个退出断点,其实下一个strcmp断点更快
从反汇编跟随就可以找到用户领空的退出代码,ctrl+a分析一下,发现有个跳转跳过来,直接跟过去,
下个断点,跟进去
一直f8,都可以看到真的password了
测试一下,确实是
当然借助一下ida,就更加容易看到了
看看过了level1后又会怎样
发现这个应该是反调试的
下面从某处复制的
新增的
AddVectoredExceptionHandler
这个API将一个指向函数的指针作为参数,把这个函数的地址添加到已注册的异常处理程序链表中。
那么这里的int3异常会交给异常处理程序链表中第一个处理函数处理,假如调试器处理这个异常,我们就到不了那里了,所以od的设置一定要忽略所以异常,让程序或系统自己处理
具体是在哪设置的呢,其实这里不用知道也可以,知道就更好了,如下图,可以直接去到40157f,删除一下分析就可以看到代码了
不知道这个怎么办呢,我们可以用退出函数断点啊,也可以根据堆栈的反汇编跟随到达password2的代码
那么401547的代码肯定是关键了,f7跟进,我们可以看到作者设定的常量了
那么接下来做了什么呢,首先判断是否到达字符串的结尾,这里作者设定的是二进制的02为结尾
那么具体的算法下面已注射的比较清楚了
当然也可以借助ida,不过通过汇编看学得更多哦
弄懂这个简单的算法后,我们可以把je改为jmp
直接在cmp处下断点,不断f9,记下al中的每个字母,password2就出来了
成功
当然也可以写个脚本
最终flag: r0b0RUlez!_w3lld0ne
安全
http
html
linux
apk
编译
io
api
int
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
case
网络链路质量监控:Smokeping部署与配置
本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ...
[详细]
蜡笔小新 2024-12-27 19:31:05
string
Java面试题解析
本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ...
[详细]
蜡笔小新 2024-12-27 13:55:14
shell
360SRC安全应急响应:从漏洞提交到修复的全过程
本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ...
[详细]
蜡笔小新 2024-12-27 11:10:05
shell
Linux 网卡绑定的七种工作模式详解
本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ...
[详细]
蜡笔小新 2024-12-27 10:18:13
tree
新浪笔试题
1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ...
[详细]
蜡笔小新 2024-12-27 19:32:17
command
macOS系统及其关键功能解析
本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ...
[详细]
蜡笔小新 2024-12-26 18:05:04
utf-8
2023年京东Android面试真题解析与经验分享
本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ...
[详细]
蜡笔小新 2024-12-26 17:45:48
copy
从 .NET 转 Java 的自学之路:IO 流基础篇
本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ...
[详细]
蜡笔小新 2024-12-26 17:37:25
string
Handling Null Object Encoding in OAuth 1.0a API Implementation
Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ...
[详细]
蜡笔小新 2024-12-28 08:54:34
string
Java并发编程:LinkedBlockingQueue的实际应用
本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ...
[详细]
蜡笔小新 2024-12-27 18:51:49
copy
Linux 自动化安装脚本详解
本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ...
[详细]
蜡笔小新 2024-12-27 16:33:32
copy
MyBatis:深入解析与应用
在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ...
[详细]
蜡笔小新 2024-12-27 12:17:16
utf-8
实现Android中的时间轴效果
本文介绍了在Android项目中实现时间轴效果的方法,通过自定义ListView的Item布局和适配器逻辑,实现了动态显示和隐藏时间标签的功能。文中详细描述了布局文件、适配器代码以及时间格式化工具类的具体实现。 ...
[详细]
蜡笔小新 2024-12-17 12:34:41
utf-8
Android商城应用开发指南(第二部分):创建启动欢迎页
大多数商城应用程序在启动时会显示一个欢迎页面,以提升用户体验。本文将指导您如何实现一个基本的欢迎页,该页面会在用户打开应用后短暂展示,随后自动跳转至主界面。 ...
[详细]
蜡笔小新 2024-12-16 17:34:59
utf-8
深入解析Android动画中的插值器(Interpolator)
本文详细介绍了Android动画系统中插值器的作用和使用方法,包括如何通过插值器控制动画的速度变化,以及如何自定义插值器来实现特定的动画效果。 ...
[详细]
蜡笔小新 2024-12-14 13:25:07
W蓝尾蝶SUH_435
这个家伙很懒,什么也没留下!
Tags | 热门标签
cpython
less
chat
hashset
buffer
get
post
join
jar
ascii
audio
require
vbscript
bit
web3
command
search
javascript
case
string
shell
schema
tree
utf-8
copy
timezone
hook
spring
emoji
eval
RankList | 热门文章
1
win10系统重置一直卡在42%怎么解决_win10系统重置一直卡在42%的解决方法
2
mysql修改配置文件不重启_MySQL修改参数不重启生效
3
ElasticSearch只能添加字段索引,而不能像lucene Field.Store.NO一样保存原始值
4
python 单引号,双引号用法的理解
5
【PTA题目】78 求矩阵的局部极大值 (15 分)
6
异常和生成式
7
面试:Websocket
8
javascript自动调整文本大小以适合jQuery的表单输入
9
CF #800 Div. 2 & CF #797 Div. 3 游记2022.6.21
10
oracle安装时找不到启动,Oracle没有开机自启是怎么回事?这一步骤很重要
11
sql 查询删除InfiniteWP站点历史记录和已删除站点的统计信息。
12
lt;org manualgt;翻译3.5.2 Calc的公式语法
13
数据结构学习笔记之链表
14
ReactJS UI Ant 设计空组件
15
开发笔记:Flutter 添加APP启动 Story View
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有