如何为嵌套类函数编写 Frida 钩子?

2023-12-24

安卓版本6.0.1

弗里达 v 12.2.19

我是弗里达的新手,不知道如何解决这个问题。我的目标函数位于路径 com -> appname ->folder -> xyz.class

在 xyz.class 中,该类的嵌套如下:

public abstract class abc
{
    public string dosomething()
    {
        StringBuilder localStringBuilder = new StringBuilder();
        localStringBuilder.append(getClass().getSimpleName());
        localStringBuilder.append("Value 1=");
        localStringBuilder.append(this.value1);
        localStringBuilder.append("Value 2=");
        localStringBuilder.append(this.value2);
        return localStringBuilder.dosomething();
    }
}

我编写了这个钩子来尝试将 value1 和 value2 打印到控制台。

自定义脚本.js:

setImmediate(function() {
console.log("[*] Starting script");

    Java.perform(function () {
        var Activity = Java.use("com.appname.folder.xyz$");
        Activity.dosomething.overload().implementation = function () {
            var datastring = localStringBuilder.dosomething();
            console.log(datastring);
            return datastring;
        };
    });

})

我不确定如何在 Java.use() 函数中构建路径,是否需要放置 xyz.class 或 xyz$ 或 xyz.class.abc$。

Error: java.lang.ClassNotFoundException: Didn't find class "com.appname.folder.xyz$" on path... etc.

如果我将路径指定为 com.appname.folder.xyz.class.abc$ 我只会收到“进程终止”错误。

我在终端上使用的 Frida 命令是

frida -U -f com.appname -l custom_script.js --no-pause

我的脚本出了什么问题?

编辑:在标题中添加了单词


类名永远不会以$。之后是匿名内部类的编号或内部类的名称abc在你的情况下。

因此类名最有可能是com.appname.folder.xyz$abc.

然而,有时类名会令人惊讶地不同。在这种情况下,列出 Frida 已知的所有类名并针对某个包进行过滤是有意义的:

Java.enumerateLoadedClasses({
    onMatch: function(className) {
        if (className.startsWith("com.appname.folder.xyz")) {
            console.log(className);
        }
    },
    onComplete: function() {}
});  

它打印下面的类列表com.appname.folder.xyz。只需查看并选择正确的即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为嵌套类函数编写 Frida 钩子? 的相关文章

  • Android Paint:如何获得“喷枪”效果?

    我正在关注 API 演示中的 FingerPaint 演示 我需要获得 喷枪 效果 从某种意义上说 当我在同一个点上绘制时 它会变得越来越暗 请看图片 正如你所看到的 中心更暗 因为我不止一次在同一个地方涂上油漆 请问 如果绘制多次 如何获
  • 设置 CollapsingToolbarLayout 的起始高度

    我希望能够在 CollapsingToolbarLayout 内的 ImageView 上滚动 那么这怎么可能 以及如何设置该图像视图的起始高度 我的 ImageView 高度是 280p 在活动开始时我想显示 200p 然后我可以向下滚动
  • Android:处理电话中的语音

    我目前正在寻找有关如何在 Android 上操作音频的选项 目标是在通话期间实时处理来自麦克风的音频 最好的解决方案是在本机调用中执行此操作 但重建一个电话应用程序 无 VOIP 也可以 有没有什么方法可以使用 Android API 来实
  • chrome 检查器,远程调试在我的移动应用程序上不再正常工作

    我使用 Cordova Ionic 构建了一个渐进式 Web 应用程序 三年来的大部分时间里 我一直在使用开发工具来排除故障并分析我的应用程序的内部工作原理 然而 在过去的几周里 我认为自从 Chrome 更新到 v70 以来 开发工具无法
  • 如何使用 ArrayAdapter

    ArrayList
  • OneSignal 推送通知 单击以打开活动

    我集成了一个用于推送通知的信号库 我想在应用程序未运行时通过单击推送通知来打开特定活动 我收到推送通知 但当我单击通知时 应用程序崩溃了 这是我的通知接收器代码 public class ExampleNotificationOpenedH
  • 如何知道哪个用户正在尝试登录?

    用户是使用电子邮件和密码创建的 这就是我进行注册的方式 mSignup setOnClickListener new View OnClickListener Override public void onClick View v mEma
  • 如何将 ThreeJS 与 PhoneGap 一起使用?

    这个探索是非常自我描述的 我已经用一个简单的 3D 立方体进行了测试 它在浏览器中运行良好 但只在模拟器中显示空白页面 有人说 Threejs 不能与 PhoneGap 一起使用 但也有人说他们使用过并且工作正常 在 Android 中 您
  • Android HTTP-post AsyncHttpClient

    public void postLoginData AsyncHttpClient myClient new AsyncHttpClient RequestParams params1 new RequestParams params1 p
  • Android - 如何在 ListView 的背景上显示垂直线(并根据行高)?

    如何在背景上显示一条垂直线 如下图蓝色突出显示的那条 在此示例中 我有一个带有 ImageView 元素的 ListView 和 TextView 但它与线条无关 并且我希望这些项目的背景上有一条垂直线 让人感觉它们与每个项目 连接 另请注
  • 为什么 Android 中奇怪的命名约定是“AlertDialog.Builder”而不是“AlertDialogBu​​ilder”

    Why not AlertDialogBuilder builder new AlertDialogBuilder this builder setTitle foo 代替 AlertDialog Builder builder new A
  • 没有 GUI 的 Android Activity

    我创建了一个仅从链接启动的活动 使用意图过滤器 我不希望此活动有 GUI 我只希望它启动服务并在栏中放置通知 我尝试将链接的意图过滤器放入我的服务中 但这不起作用 有没有更好的方法可以响应意图过滤器 或者我可以让我的活动没有 GUI 吗 抱
  • ViewPagerIndicator:TabPagerIndicator 不可见

    我现在正在为 viewpageinderdicator 苦苦挣扎 当我使用 TitlePageIndicator 时 一切正常 但是当我尝试使用 TabPageIndicator 时我看不到它 它不会出现在层次结构视图中 我尝试了很多东西
  • 防止滚动时自定义 ListView 刷新。我想停止刷新

    我在我的 Android 应用程序中使用自定义 ListView 问题是当我滚动 ListView 时 它会自动清除从 EditText Edittext 作为 list item 输入的数据 并且 ListView 刷新 我想阻止它停止清
  • Android - 带动画的可扩展 TextView

    我有一个TextView首先显示长文本的一小部分 用户可以按 查看更多 按钮来展开TextView并查看该文本的其余部分 进行测试 我可以通过简单地交换以下值来实现这一点TextView setMaxLines介于 4 之间 用于折叠 和
  • 如何运行传递给模拟方法的 lambda 函数?

    我想知道是否可以运行作为参数传递给模拟函数的 lambda 函数 并在调用模拟方法时运行它 我正在使用 Mockk 我想象代码是这样的 class DataManager fun submit lambda Int gt Unit val
  • 屏幕方向更改后应用程序崩溃

    我有以下问题 启动后 应用程序工作正常 即使在更改屏幕方向后也是如此 应用程序尚未准备好处理方向更改 例如替代布局等 因此仅显示旋转的默认布局就可以了 但是 当我通过按后退键离开应用程序 更改方向并在再次启动应用程序后立即崩溃 崩溃后 如果
  • 使用 LinearLayout 将按钮放在屏幕底部?

    我有以下代码 如何使 3 个按钮位于底部
  • 如何找出每个包含的库的最低 api 级别

    我的项目中包含了很多库 Android Studio 2 0 Preview 4 我想找出它们每个的最低 Android SDK 级别 是否可以不用谷歌搜索每个图书馆的信息 如果您有源形式的库 例如 作为项目中的库模块 请查看其清单 如果您
  • 为什么 fork 炸弹没有使 android 崩溃?

    这是最简单的叉子炸弹 我在许多 Linux 发行版上执行了它 但它们都崩溃了 但是当我在 android 终端中执行此操作时 即使授予后也没有效果超级用户权限 有什么解释为什么它没有使 Android 系统崩溃吗 一句话 ulimit Li

随机推荐