热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

合天网络安全实验室CTF实战演练中的逆向工程挑战题

近期在研究逆向工程,因此尝试了一些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



推荐阅读
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 在Ubuntu 16.04 LTS上配置Qt Creator开发环境
    本文详细介绍了如何在Ubuntu 16.04 LTS系统中安装和配置Qt Creator,涵盖了从下载到安装的全过程,并提供了常见问题的解决方案。 ... [详细]
  • 尽管某些细分市场如WAN优化表现不佳,但全球运营商路由器和交换机市场持续增长。根据最新研究,该市场预计在2023年达到202亿美元的规模。 ... [详细]
  • Android 九宫格布局详解及实现:人人网应用示例
    本文深入探讨了人人网Android应用中独特的九宫格布局设计,解析其背后的GridView实现原理,并提供详细的代码示例。这种布局方式不仅美观大方,而且在现代Android应用中较为少见,值得开发者借鉴。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 本文详细介绍了如何在BackTrack 5中配置和启动SSH服务,确保其正常运行,并通过Windows系统成功连接。涵盖了必要的密钥生成步骤及常见问题解决方法。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • CMake跨平台开发实践
    本文介绍如何使用CMake支持不同平台的代码编译。通过一个简单的示例,我们将展示如何编写CMakeLists.txt以适应Linux和Windows平台,并实现跨平台的函数调用。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
author-avatar
W蓝尾蝶SUH_435
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有