首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
text
random
php5
audio
sum
timestamp
tree
post
get
iostream
loops
settings
vbscript
function
buffer
hook
httpclient
spring
cSharp
header
php8
split
yaml
case
dockerfile
shell
require
cPlusPlus
substring
range
byte
emoji
foreach
go
window
uml
match
search
chat
vba
default
md5
expression
command
web
bit
python2
replace
copy
usb
callback
js
bytecode
less
io
cmd
rsa
jsp
ascii
lua
install
email
typescript
jar
select
javascript
数组
request
join
main
python
filter
process
hashcode
timezone
java
runtime
heap
list
当前位置:
开发笔记
>
编程语言
> 正文
合天网络安全实验室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
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
header
网站访问全流程解析
本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ...
[详细]
蜡笔小新 2024-11-12 18:13:16
loops
IOS Run loop详解
为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ...
[详细]
蜡笔小新 2024-11-13 12:14:35
function
Java 并发编程:深入解析 AtomicInteger 和 CAS 无锁算法
在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ...
[详细]
蜡笔小新 2024-11-12 16:40:04
get
探索资源访问的学习路径与方法
本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ...
[详细]
蜡笔小新 2024-11-06 18:03:41
get
信息安全专业职业规划指南
本文旨在探讨信息安全专业的职业规划路径,结合个人经历和专家建议,为即将毕业的学生提供实用的指导。 ...
[详细]
蜡笔小新 2024-11-13 21:56:42
get
三角测量计算三维坐标的代码_双目三维重建——层次化重建思考
双目三维重建——层次化重建思考FesianXu2020.7.22atANTFINANCIALintern前言本文是笔者阅读[1]第10章内容的笔记,本文从宏观的角度阐 ...
[详细]
蜡笔小新 2024-11-13 19:31:37
get
微信平台上的HTML5游戏开发心得
近期,微信公众平台上的HTML5游戏引起了广泛讨论,预示着HTML5游戏将迎来新的发展机遇。磊友科技的赵霏,作为一名HTML5技术的倡导者,分享了他在微信平台上开发HTML5游戏的经验和见解。 ...
[详细]
蜡笔小新 2024-11-13 16:56:47
get
使用ArcGIS for Java和Flex浏览自定义ArcGIS Server 9.3地图
本文介绍了如何在Flex应用程序中实现浏览自定义ArcGIS Server 9.3发布的地图。这是一个基本的入门示例,适用于初学者。 ...
[详细]
蜡笔小新 2024-11-13 14:40:13
get
图像相似度对比的多种方法
本文介绍了几种常用的图像相似度对比方法,包括直方图方法、图像模板匹配、PSNR峰值信噪比、SSIM结构相似性和感知哈希算法。每种方法都有其优缺点,适用于不同的应用场景。 ...
[详细]
蜡笔小新 2024-11-13 11:04:56
get
使用OpenSSL自建CA证书(实测有效)
本文详细介绍了如何使用OpenSSL自建CA证书的步骤,包括准备工作、生成CA证书、生成服务器待签证书以及证书签名等过程。 ...
[详细]
蜡笔小新 2024-11-13 09:55:03
shell
解决 Ubuntu 环境下 Hadoop 集群 SSH 密钥认证问题
本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ...
[详细]
蜡笔小新 2024-11-13 09:14:02
shell
开机自启动的几种方式
0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ...
[详细]
蜡笔小新 2024-11-12 11:16:30
get
开发中遇到的一些常见问题及解决方案
本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ...
[详细]
蜡笔小新 2024-11-12 08:20:05
post
在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ...
[详细]
蜡笔小新 2024-11-11 18:27:44
get
自定义 Android 圆形进度条视图,支持显示数字和中心文字
本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ...
[详细]
蜡笔小新 2024-11-10 13:04:42
W蓝尾蝶SUH_435
这个家伙很懒,什么也没留下!
Tags | 热门标签
text
random
php5
audio
sum
timestamp
tree
post
get
iostream
loops
settings
vbscript
function
buffer
hook
httpclient
spring
cSharp
header
php8
split
yaml
case
dockerfile
shell
require
cPlusPlus
substring
range
RankList | 热门文章
1
mSecure软件管理密码的方法
2
虚拟内存的设置办法(转载)
3
控制台无法cd进入其他盘符
4
苹果备忘录密码
5
Win10资源管理器假死怎么办?Win10系统资源管理器不明原因崩溃怎么办?
6
计算机磁盘如何合并分区? win7怎么合并分区
7
“垃圾食品”排行榜!方便面未上榜,奶茶第1,辣条第3,建议了解
8
技术_一切技术指标都是滞后指标
9
cad模型与布局不见了,cad模型里面的不见了 布局还能看得见
10
视频怎么剪切?推荐几款视频剪辑工具
11
自考《信息资源管理》
12
华为全面屏手机怎么设置虚拟键华为全面屏设置
13
合振动的初相位推导_基于振动信号的机械设备故障诊断(一)
14
NPDP门径管理流程StageGate之Gate(关口)
15
用双色调给黑色图片调色
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有