1. Java.perform(function () {
    2. console.log("start hooking...");
    3. function showstack() {
    4. var log = Java.use("android.util.Log");
    5. var Throwable = Java.use("java.lang.Throwable");
    6. console.log(log.getStackTraceString(Throwable.$new()))
    7. }
    8. var collections = Java.use("java.util.Collections");
    9. collections.sort.overload('java.util.List').implementation = function (a) {
    10. showstack();
    11. var result = Java.cast(a, Java.use("java.util.ArrayList"));
    12. console.log("collections.sort List: ", result.toString());
    13. return this.sort(a);
    14. }
    15. collections.sort.overload('java.util.List', 'java.util.Comparator').implementation = function (a, b) {
    16. showstack();
    17. var result = Java.cast(a, Java.use("java.util.ArrayList"));
    18. console.log("collections.sort List Comparator: ", result.toString());
    19. return this.sort(a, b);
    20. }
    21. })

    这个方法主要针对哈希系列的排序;

    List是一个接口,是Collection接口的一个子接口,是一个有序的集合。
    ArrayList是List的一个实现类,可以实现数组大小的可变,可以很方便的进行增加和删减数组内元素的操作。

    此次hook也使用了Frida 的Java.cast强转的功能

    除此之外还有java.util.Arrays -sort -toString
    image.png