0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何主动调用获取flag

Q哥学逆向 来源:Linux逆向 作者:Linux逆向 2020-10-10 09:44 次阅读

最近在看雪Android区看到九月份的一篇优秀贴, 文章从过反调试和IDA动静态调试角度解题,甚至还得解析得到RC4密钥,讲得非常细致,虽然我也是新手,但是这么去逆向,让人觉得太难懂了。

明明有强大的frida工具,可以无需过反调试,无需IDA去动静态调试,无需获取RC4密钥,直接用主动调用获取flag,何必走繁琐的路呢?

首先直接JADX打开APK,没有加壳,直接可以看到核心代码如下,用户输入直接通过JNI函数greywolf对输入字符串做检测

利用IDA打开libwolf.so,没有找到greywolf函数,所以该函数肯定是通过registerNatives注册的,于是直接用frida拿到greywolf偏移,为0X14075。

然后IDA快捷键按G,输入0X14075,直接跳转到greywolf函数(函数名称换成了bc)处,再F5查看伪代码,如下。该函数只有line15和line17两处return,先分析第二处return。

跟踪wolf_de函数,看到明显的RC4解密算法,且密钥就是unk_4E13A,所以直接调用wolf_de,传入待解密字符串,其返回值就是解密结果,我们直接利用frida去主动调用wolf_de,去解密bc函数中line16行“5B694AADB2DC559E44B84637A2D61F”得到“Password Error~”,效果如下。

所以要想验证成功,必然走到line15行的j_jk函数,继续跟踪此函数,同样手法在jk函数中line15可以解析得到正确显示,所以跟踪dc函数。

跟踪上图dc函数,一切皆从return往上跟踪,最后在ds函数中看到如下代码,该代码将输入字符与line24解密字符串比较,相等则为真。

所以直接主动调用,直接看到flag为“hello5.1”,上机验证正确。

责任编辑:YYX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 密钥
    +关注

    关注

    1

    文章

    138

    浏览量

    19753
  • 函数
    +关注

    关注

    3

    文章

    4327

    浏览量

    62573
  • Flag
    +关注

    关注

    0

    文章

    12

    浏览量

    8133

原文标题:逆向基础题十:获取flag

文章出处:【微信号:Reverse16,微信公众号:Q哥学逆向】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    主动芯片组参考设计指南

    电子发烧友网站提供《主动芯片组参考设计指南.pdf》资料免费下载
    发表于 12-09 15:27 0次下载
    <b class='flag-5'>主动</b>芯片组参考设计指南

    使用OPA567做了一个可调电源,是不是OCP flag active之后必须要讲EN脚disable之后flag才会复位?

    我使用OPA567做了一个可调电源,电流限制已经设定到最大。但是当接上负载打开负载开关时总是容易报OCP,而且ocp_flag(PIN7)引脚一直在保持active状态.即便断开负载还是会有这个flag. 问:是不是OCP flag
    发表于 08-13 07:35

    OpenAI api key获取并可调用GPT-4.0、GPT-4o、GPT-4omini

    前言 在这篇文章中,我们将详细介绍如何申请OpenAI的GPT-4.0 API Key。通过这个教程,你将能够轻松获取OpenAI API KEY并使用GPT-4.0的强大功能。 目录 注册
    的头像 发表于 08-06 15:16 3024次阅读
    OpenAI api key<b class='flag-5'>获取</b>并可<b class='flag-5'>调用</b>GPT-4.0、GPT-4o、GPT-4omini

    主动红外和被动红外详解

    红外技术,这个在科技界经常出现的名词,对于许多人来说可能还是个陌生的领域。然而,红外技术并非单一的,它有两种常见的形式:主动红外和被动红外。让我们一起深入探讨一下吧。主动红外原理主动红外是一种
    的头像 发表于 06-27 17:23 605次阅读
    <b class='flag-5'>主动</b>红外和被动红外详解

    请问ESP32 BLE透传如何主动发送数据?

    我在做ESP32 BLE透传,通过串口透传数据。看到的例程都是手机app端读操作时触发ESP_GATTS_READ_EVT事件,然后发送数据。我想问如何主动发送数据,当连接后,串口有数据来是如何主动地将数据转发给到手机app端。有无例程参考
    发表于 06-21 11:25

    CC2340R5从机主动notify就会导致BLE卡住,为什么?

    函数:主机打开notify enable,然后写char1,从机调用上面的notify函数响应数据,这个是没有问题的。但是,如果是主机没有写,从机主动notify一次数据就会导致BLE超时了,搜不到信号了。有人可以解答下是为什么么。
    发表于 05-30 08:31

    stm32f030的AD转换,如何调用一次getadcvalue() 就采集一次数据?

    *Param:void *Return Param :void *Description:获取adc转换结果
    发表于 05-13 07:48

    OpenAI API Key获取与充值教程:助开发者解锁GPT-4.0 API

    OpenAI 的 API Key,以及如何使用这个 Key 来调用 GPT-4.0 API。 第一步:获取 OpenAI API Key 要开始使用 OpenAI 的服务,你首先需要注册并获取一个 API
    的头像 发表于 04-28 16:35 1w次阅读
    OpenAI API Key<b class='flag-5'>获取</b>与充值教程:助开发者解锁GPT-4.0 API

    HAL_GetTick()获取不到计时,IIC等待超时函数无法跳出的原因?怎么解决?

    不是固定时间出现该问题,程序进入IIC超时函数时,由于HAL_GetTick()函数获取到的值没有更新,导致循环无法跳出,并且在获取计时前enable()打开中断也无用,随后看门狗复位 static
    发表于 03-21 08:32

    ADS调用spectre网表仿真异常—薛定谔的NetlistInclude

    ADS是支持调用spice/spectre等网表文件进行仿真的,可以用NetlistInclude控件来进行调用
    的头像 发表于 03-07 09:57 2333次阅读
    ADS<b class='flag-5'>调用</b>spectre网表仿真异常—薛定谔的NetlistInclude

    verilog如何调用其他module

    。 1.2 为什么要调用其他模块? 在复杂的设计中,我们通常需要实现各种不同的功能,并且这些功能往往可以通过不同的模块来实现。通过调用其他模块,我们可以将问题分解为更小的子问题,并且可以更方便地实现和维护我们的设计。 1.3 调用
    的头像 发表于 02-22 15:56 5770次阅读

    鸿蒙开发-OpenHarmony轻量系统之获取当地时间

    在轻量设备里面,我们常常需要获取本地时间,用于时间显示,log记录,帮助RTC芯片纠正时间等等。我们在之前设计了一个智慧时钟,需要使用到本地当前时间,因此本篇文章想在OpenHarmony上实现SNTP获取本地时间,并将此功能集成为一个模块,便于我们的主程序
    的头像 发表于 01-22 17:48 1063次阅读
    鸿蒙开发-OpenHarmony轻量系统之<b class='flag-5'>获取</b>当地时间

    Linux内核中信号相关的系统调用

    正如我们所知,运行在用户态下的程序可以发送和接收信号。这意味着必须定义一组系统调用来允许这类操作。不幸的是,由于历史原因,有些系统调用可能功能相同。 因此,其中一些系统调用永远不会被调用
    的头像 发表于 01-20 09:34 725次阅读

    汽车RNC路噪主动降噪测试

    本文主要内容:RNC路噪主动降噪概述、RNC路噪主动降噪测试配置、RNC路噪主动降噪测试架构
    的头像 发表于 01-10 14:20 1861次阅读
    汽车RNC路噪<b class='flag-5'>主动</b>降噪测试

    西门子博途:手动更新块调用

    选择不一致的调用,然后在上下文菜单(鼠标右键)中选择函数“Update”。 然后会出现一个窗口,其中显示旧的(不正确的)和新的块调用(带有已删除的“ActiveNotAck”参数)。
    的头像 发表于 12-25 11:12 3117次阅读
    西门子博途:手动更新块<b class='flag-5'>调用</b>