【问题标题】:Obfuscated information using Android NDK Input使用 Android NDK 输入混淆信息
【发布时间】:2013-02-13 22:12:14
【问题描述】:

在使用 NDK 和 NativeActivity 进行黑客攻击时,我无法获得有关触摸输入的有用信息 - 我只是获得了标志的模糊信息。

这是相关代码的 sn-p(从示例中的 plasma.c 编辑):

static int32_t engine_handle_input(struct android_app* app, AInputEvent* event) {
    struct engine* engine = (struct engine*)app->userData;
    LOGI("Event: action=%d\nkeyCode=%d\nmetaState=0x%x\nAction=0x%x\nx=%d\ny=%d"
        "\nflags=0x%x\nxprec=%d\nyprec=%d\nxoff=%d\nyoff=%d\nguessX=%d\n\n",
                AKeyEvent_getAction(event),
                AKeyEvent_getKeyCode(event),
                AKeyEvent_getMetaState(event),
                AMotionEvent_getAction(event),
                AMotionEvent_getX(event,0),
                AMotionEvent_getY(event,0),
                AMotionEvent_getFlags(event),
                AMotionEvent_getXPrecision(event),
                AMotionEvent_getYPrecision(event),
                AMotionEvent_getXOffset(event),
                AMotionEvent_getYOffset(event))

    return 0;
}

这是我在触摸屏幕时得到的那种日志输出:

I/libplasma(24786): Event: action=1
I/libplasma(24786): keyCode=0
I/libplasma(24786): metaState=0x0
I/libplasma(24786): Action=0x1
I/libplasma(24786): x=1074838969
I/libplasma(24786): y=1073741824
I/libplasma(24786): flags=0x408cf365
I/libplasma(24786): xprec=-2147483648
I/libplasma(24786): yprec=1081822550
I/libplasma(24786): xoff=0
I/libplasma(24786): yoff=1074839057
I/libplasma(24786):

我不确定我应该如何从这些垃圾中提取有用的信息,而且我找不到关于 NDK NativeActivity 输入的单个教程。这里有 NDK 大师吗?

【问题讨论】:

    标签: android android-ndk native-activity


    【解决方案1】:

    我傻了。他们都返回floats

    AMotionEvent_getX(event,0)
    AMotionEvent_getY(event,0)
    AMotionEvent_getFlags(event)
    AMotionEvent_getXPrecision(event)
    AMotionEvent_getYPrecision(event)
    AMotionEvent_getXOffset(event)
    AMotionEvent_getYOffset(event)
    

    如果我将它们用作 %f 的浮点数,这是我的输出:

    I/libplasma(29039): Event: action=1
    I/libplasma(29039): keyCode=0
    I/libplasma(29039): metaState=0x0
    I/libplasma(29039): Action=0x1
    I/libplasma(29039): x=1513.833618
    I/libplasma(29039): y=697.899841
    I/libplasma(29039): flags=0x0
    I/libplasma(29039): xprec=1.533854
    I/libplasma(29039): yprec=1.547500
    I/libplasma(29039): xoff=0.000000
    I/libplasma(29039): yoff=0.000000
    

    如果以后有人遇到这个问题,请务必打开源文件android/input.h 以获取有关每个功能的信息。默认情况下,这将位于<NDK-Install-Path>/platforms/<ndk-platform>/arch-arm/usr/include/android/input.h

    【讨论】:

      猜你喜欢
      • 2011-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-09
      • 1970-01-01
      • 2015-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多