全国统一24小时服务热线:400-0000-889400-0000-889  / 13999887799

亚游平台注册新闻

当前位置:AG亚游注册官网 > 亚游平台注册新闻资讯 > 亚游平台注册新闻 >

对于我们需要的 AF_亚游娱乐平台地址 类型的套接

发布时间:2022-06-30 15:00 作者:admin 来源:未知 点击: 字号:

对于我们需要的 AF_亚游娱乐平台地址 类型的套接字,这是:

也就是说,IP 地址本身位于此结构中,偏移量为 4 字节(短 sin_family + 无符号短 sin_port),占用 8 字节(无符号长)。这意味着我们需要在源地址上加 4,然后从接收到的地址中读取 8 个字节并解析得到一个点分文本 IP 地址。我们通过用这个替换原来的钩子来做到这一点:

请注意,我们从末尾开始解析地址,也就是我们展开它。这是必要的,因为所有现代 ARM 处理器都使用 little-endian 字节顺序。还要注意 Memory 类和 add() 方法,它们是Frida API的一部分。

保存文件并再次运行 frida-trace:

瞧。诚然,有一个警告。由于我们的代码无法区分 AF_UNIX、AF_亚游娱乐平台地址 和 AF_亚游娱乐平台地址6 套接字并将它们全部解释为 AF_亚游娱乐平台地址,因此有时它会输出不存在的地址。也就是说,它将尝试解析 AF_UNIX 套接字的文件名并将其输出为 IP(或尝试将 IPv6 地址输出为 IPv4 地址)。拒绝这样的地址很容易,它们通常连续出现并且经常重复。就我而言,它是 101.118.47.115。

我们正在扎根

当然,Frida 的可能性比拦截原生函数和系统调用的调用要广泛得多。如果我们看一下提到的 Frida API,我们可以看到它有一个 Java 对象。有了它,我们可以拦截对任何 Java 对象和方法的调用,这意味着我们几乎可以改变任何 Android 应用程序(包括用 Kotlin 编写的应用程序)行为的任何方面。

让我们从简单的开始 - 让我们尝试找出加载到应用程序中的所有类。创建一个新文件(我们称之为 enumerate.js)并向其中添加以下行:

这是非常简单的代码。我们首先调用 Java.perform() 方法,这意味着我们要连接到 Java 虚拟机(或 Android 的 Dalvik/ART)。接下来,我们调用 Java.enumerateLoadedClasses() 方法并向它传递两个回调: onMatch() 将在“发现”类时执行,onComplete() 在最后执行(如您所见,我们不需要这个回调,我们把它留空)。

我们推出:

我们在屏幕上看到一长串看似无穷无尽的类列表,其中一些是应用程序本身的一部分,但绝大多数是标准的 Android 框架类(Android 以写时复制模式将整个框架加载到每个进程中) )。

事实上,这个列表对我们来说并不是特别有趣。更有趣的是,您可以将自己的代码注入任何这些类,或者更准确地说,重写任何这些类的任何方法的主体。例如,让我们看这段代码:

我们首先使用 Java.use() 来获取一个与 android.app.Activity 类一起使用的包装器对象。然后我们重写它的 onResume() 方法,最后调用原始方法 (this.onResume)。

熟悉Android应用开发的人应该都知道,Activity类是为了创建应用的“屏幕”而设计的。它有许多方法,其中之一称为 onResume()。这实际上是在创建屏幕期间以及返回屏幕时调用的回调。

如果将此脚本加载到 Frida 中,启动 Telegram,然后退出,然后重新打开,您会注意到每次返回 Telegram 时,终端都会出现“onResume() 被调用!”消息。

同理,我们可以拦截按钮点击:

这是记录应用程序访问的所有 URL 的示例:

在这种情况下,我们将注入非常流行的 OkHttp 库并覆盖其 okHttpClient.open() 方法。其余的应该很清楚。

弗里达代码共享

Frida 有一个官方脚本存储库,您可以在其中找到诸如fridantiroot 之类的好东西- 一个允许您禁用对 root 的检查的综合脚本,Universal Android SSL Pinning Bypass - 绕过 SSL Pinning,Alert On MainActivity - 一个实现成熟的代码示例JavaScript 上的 Android 对话框。

这些脚本中的任何一个都可以在不首先使用以下命令下载的情况下运行:

 

打破CrackMe

现在让我们尝试破解一些真实的东西。在 Internet 上,您可以找到许多不同的 CrackMe。让我们来看看第一个更准确地说,是在此存储库中发布的五个中的第一个。Crackme-one.apk 将一个文件写入其私有目录,我们的任务是提取该文件的内容。我会马上说,有很多方法可以在 20 秒内做到这一点,但同时这是了解如何使用 Frida 的一个很好的例子。

因此,下载并安装应用程序:

系统会提示我们按下按钮来写入文件或输入答案以进行验证。显然,为了破解这个 CrackMe,我们必须在文件写入的那一刻进行控制。但是怎么做呢?

其实很简单。大多数 Android 应用程序使用 java.io.OutputStream 类或 java.io.OutputStreamWriter 类来写入数据。它们每个都有一个 write()` 方法,负责写入文件。我们只需要用我们的实现替换它并显示第一个参数,它包含一个字节数组或一个字符串:

我们推出:

瞧,这条线出现在屏幕上

我将提出三点:

  1. 这次我们使用了重载() 方法,因为 OutputStreamWriter 类一次实现了三个具有不同参数集的 write() 方法。
  2. 我们使用了 --no-pause 选项,如果我们想冷启动应用程序并且不希望 Frida 从一开始就停止应用程序,则需要该选项。
  3. 事实上,只要进入它的私有目录并读取文件(这是可能的,因为我们有一个 root 智能手机)或通过反编译应用程序(文本是明文),这个 CrackMe 就可以被黑客入侵。但是,这里有一个警告:如果 CrackMe 以加密形式存储字符串并仅在写入之前对其进行解密,则反编译将毫无用处(好吧,至少在您提取加密密钥并编写解密脚本之前)。
将代码注入应用程序
也可以使用反编译器提取字符串

结论

Frida 是一个非常强大的工具,您可以使用它对您的实验应用程序做几乎任何事情。但这个工具并不适合所有人,它需要 JavaScript 知识,了解 Android 原理和应用程序。因此,如果你是一个随便的脚本小子

相关文章Related Articles

  • 我的赌博成瘾第 2 部分。认

    2022-07-29

    这一切都始于学校。 我不会确定事件的确切年表,但很可能是 2005 年。 我必须说,我从小就是一个安静的孩子,把所有的空闲时间都花在了书上。 放学后...

  • 回复帖子“你想失去朋友吗

    2022-07-29

    我读了帖子的标题并立即想起了我的故事,尽管它发生在最近。 我有一个朋友一个儿时的朋友。 我们在同一家公司一起长大。 每个假期,联合活动,旅行...

  • 赌场员工的收入是多少

    2022-07-27

    广泛的女性化已经达到了赌博。 如果说在 19 世纪沉迷于这种娱乐的主要是男性,那么在 20 世纪,无数的性别革命改变了一切。 现在 赌场是完全平等的。...

  • 赌博从古到今的演变

    2022-07-27

    古代人不仅通过狩猎猛犸象和挥动挖掘棒来获得乐趣。 考古学家发现了可靠的证据,证明我们正直而不是非常的祖先对赌博的热情并不陌生。 随着人类的...

如果您觉得本站还不错,就请分享给身边的好友吧


分享成功还有机会获得精美礼品哦