Android逆向中Java代码的问题
本帖最后由 aqin5014 于 2023-8-14 17:25 编辑我在逆向一个APP时追踪到这个方法:
public native String tmc(String str, String str2);
当时看到这个方法我直接蒙蔽了(因为本人功底只能勉强解读Java语法),我尝试查看此方法的实现发现查找不到,然后下面是我通过某度的语言模型了解到的:
看起来你提供了一个Java方法的签名,但是有一些关键的细节缺失了。这个方法的名字是`tmc`,它接收两个字符串参数(`str`和`str2`),并且返回一个字符串。
这个方法签名中还有`native`关键字,它表示这个方法在Java代码中被声明,但实际的实现是在本地代码(如C或C++)中。这是Java本地接口(Java Native Interface,JNI)的一种常见用法,用于Java和本地代码之间的交互。
然而,具体的行为取决于该方法在本地代码中的实现。
希望老哥们能给我提供思路,谢谢。{:301_972:} 本帖最后由 aqin5014 于 2023-8-15 17:34 编辑
感谢大家的帮助,我跟着正己大佬的教程学习到了密码学的地方,推测此方法就是将字符串转换成16进制返回,然后我用python逆向了此方法,成功拿到数据{:301_978:} 这个方法在so里面。不知道你要修改什么内容,这个只是个字符串,改smali也是很好改的。 native 方法,应该是在 so 文件中(lib 目录下) 改java层的就行了,大部分的apk即便是把核心逻辑放在so里面,你要做的事也可以从java层下手,下不了手的建议直接放弃,因为so那段路太遥远了,没必要上来就浪费时间,而且也大概率没有什么效果。 看看这个好不好 一般在当前类下找到so文件的名称, 在/lib目录拿到so文件, 使用IDA分析 芽衣 发表于 2023-8-14 18:25
这个方法在so里面。不知道你要修改什么内容,这个只是个字符串,改smali也是很好改的。
感谢大佬捧场{:1_893:},这个方法实现我通过算法助手了解了一下,他的作用是将两个json数据拼接然后加密并返回,下面是算法助手获取的内容:
参数1:{"xxxx":"xxxxx","xxxxx":"xxx","xx":"xxx","xx":"xxx"}
参数2:{"xxxx":"xxxxx","xxxxx":"xxx,"xx":"xxx"}
!!!参数怕违规就用x代替了!!!
返回结果类型:java.lang.String
返回结果值:7B0A0922746578745F31223A09227B5C226D6574686F645C223A5C224765744D7573696355726C5C222C5C22706C6174666F726D5C223A5C227779795C222C5C2274315C223A5C22313333303334383036385C222C5C2274325C223A5C226D70335C227D222C0A0922746578745F32223A09227B5C227569645C223A5C225C222C5C22746F6B656E5C223A5C225C222C5C2264657669636569645C223A5C2239636334333135616634633562633533356237303939303365386265383765385C222C5C2261707056657273696F6E5C223A5C22342E312E335C222C5C22766572636F64655C223A5C22343133305C222C5C226465766963655C223A5C227669766F205631393136415C222C5C226F7356657273696F6E5C223A5C22395C227D222C0A09227369676E5F31223A09223634333432643432646631353531613234616362373430383635613133376263222C0A092274696D65223A092231363931393938323537222C0A09227369676E5F32223A09223133373935303362643661373262333039373966353062386437303039393038220A7D Arcticlyc 发表于 2023-8-14 18:23
native 方法,应该是在 so 文件中(lib 目录下)
就怕在so里{:1_909:} zhuxiangyu1024 发表于 2023-8-14 18:26
改java层的就行了,大部分的apk即便是把核心逻辑放在so里面,你要做的事也可以从java层下手,下不了手的建 ...
感谢捧场,我想调用一下他的url然后用python实现一下,他这个是加密的body里面的数据,软件作者很良心,我不会去恶意恶心他,只是单纯想增强一下我逆向的水平和python的使用水平{:1_936:}
页:
[1]