gpt4 book ai didi

java - 如何检测 .so 文件中的 Java 字符串?

转载 作者:行者123 更新时间:2023-11-30 11:42:18 26 4
gpt4 key购买 nike

我正在重新编译一个Java程序,我有以下方法:

public static native String getMyString(String s);

getMyString 在 mylibrary.so 中实现,如下所示:

; Scrambler::getMyString(char  const*)
EXPORT _ZN9Scrambler18getMyStringEPKc
_ZN9Scrambler18getMyStringEPKc
LDR R1, =(mystring - 0x14FC8)
PUSH {R4-R6,LR}
ADD R1, PC ; "mystring"
MOV R4, R0
BLX strcasecmp
CMP R0, #0
BNE.W loc_150FC

结束于

LDR             R5, =(unk_6AE24 - 0x14FD8)
ADD R5, PC

R5 好像是这里的返回值。

unk_6AE24 如下所示:

                                              27
68 5D 6D 06 3F 10 6D 26 32 10 56 12 06 3F 32 5D
12 27 26 4B 0D 5D 27 4B 6E 0D 2B 06 32 5D 68 24
3F 32 06 24 70 56 00 63 69 4C 1D 06 5A 7F 0C 34
1E 67 3B 63 32 5F 16 1D 34 5F 1E 32 42 69 18 49
3F 51 49 0C 1F 0C 0E 77 2F 44 69 7F 5A 0C 0B 34
0C 34 1C 24 32 5F 7F 00 00 00 00 1D 30 3B 5F 30

IDA 建议,有问题的字符串是 27 68 5D 6D 或“'h]m”,但我对此表示怀疑。当我很久以前使用 C++ 时,字符串过去常常以 0 结尾,这将导致 27 68 5D 6D 06 3F 10 6D 26 32 10 56 12 06 3F 32 5D 12 27 26 4B 0D 5D 27 的返回值4B 6E 0D 2B 06 32 5D 68 24 3F 32 06 24 70 56。或者我们可以谈论 java 字符串,它可能有自己的格式。

getMyString 会返回什么样的字符串?

最佳答案

What kind of string will getMyString return?

它将返回一个 java.lang.String,您可以从声明中获取它。

实际的字符数据(可能)是一个重定向。 (String 可能是指向 char 数组和大小的指针)。请记住,在 Java 中,char 是 16 位。

你到底想做什么?在 getMyString 返回后立即设置断点并在调试器中查看返回值要容易得多。

关于java - 如何检测 .so 文件中的 Java 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11781834/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com