剑指漠北
剑指漠北
https://github.com/iqiyi/xHook/blob/9180bd74098fd41f808d3968e2e52b4f5db92c99/libxhook/jni/xh_util.c#L49 你好,大佬,最近我在学习PLT hook的相关知识,所以找到了xhook。 xhook写的太好了,让我学到了好多知识。 (1)Line49 line[512]够大吗?如果一行读不完,恰好在动态库名称或者路径的地方被截断了,strstr(line, pathname)一直等于NULL,那岂不永远找不到相应的内存页。 为什么不用getLine或者加上\n的判断,或者去掉对pathname的判断。 android对动态库的路径或者动态库的名称长度有严格限制吗,所以512够用? (2)为什么要特殊处理跨内存页,实际应用中有遇到重定位函数表/GOT内容跨页的现象吗? 不是有严格的内存对齐要求(要么4要么8)? 这种PLT-GOT相关的条目不是程序刚运行时就分配地址了吗? 内存碎片对变量地址,可能导致变量跨页存储。 我实在不理解这个地方为什么要处理跨页。
测试一下怎么删除
哪里可以删除issues啊
dev分支编译不过,直接在master分支操作了。 (1)Android 5.x space name相同 https://cs.android.com/android/platform/superproject/+/android-5.0.0_r1.0.1:art/runtime/gc/heap.cc https://cs.android.com/android/platform/superproject/+/android-5.1.1_r9:art/runtime/gc/heap.cc    从上可以看出: Android 5.x 系列Android系统存在一个BUG,即From和To的space name都是dalvik-main space(Android 5以上To的space name为dalvik-main space 1),因此Android 5.x 需要特殊处理。 (2)"dalvik.vm.heapsize" property值 Android 5.x 单个space的虚拟内存等于dalvik.vm.heapsize。 Android 6以上 单个space的虚拟内存不大于dalvik.vm.heapsize。...
### 问题描述 ``` struct Test { Test() { ptr = new int[100]; } ~Test() { delete[] ptr; } int* ptr; int a[100]; }; Test* test = new Test; // delete...
Patrons在信号处理这块有点问题: xhook和Patrons都针对SIGSEGV做了特殊处理,用来防止自己的core dump扩散到外面。外面的信号被xhook或者Patrons捕获到时会调用sigaction把old信号处理函数重新注册成新的信号处理函数(等同放弃了自己的信号保护机制), 按代码信号处理函数注册时机来说,如果Patrons代码块的信号处理函数捕获到xhook代码块的SIGSEGV,Patrons代码块判断不是自己内部的便放弃了自己的信号处理函数并把xhook的信号处理函数注册成新的信号处理函数,最终会触发了xhook的信号处理函数,程序不会崩溃,程序执行一段时间后,如果Patrons代码块发出了SIGSEGV信号,SIGSEGV信号会被xhook的信号处理函数处理,程序就崩溃了。并没有做到杜绝因为Patrons崩溃而造成APP崩溃。 参考Android处理方案,直接调用旧的信号处理函数即可。 https://cs.android.com/android/platform/superproject/+/master:external/gwp_asan/gwp_asan/optional/segv_handler_posix.cpp  回归机型: Android 12 ONEPLUS LE2110 SAMSUNG SM-A217F Android 11 XIAOMI M2102J2SC OPPO CPH2067 GOOGLE Pixel 4 XL Android 10 BLACKSHARK SHARK KLE-A0 HUAWEI...
(1)使用auto&明确指出要使用左值引用,减少不必要的拷贝构造。 (2)只用erase代替copy_records,减少不必要的构造。
Someone pairing through notification reply, but that is very complicated. I want to use split screen for pairing. But I don’t know how to turn off split screen, sorry.
Android API 33(+) start the secondary screen desktop when creating a virtualdisplay. Android API 29 ~ 32 does not start the secondary screen desktop when creating a virtualdisplay, and the...
https://github.com/Genymobile/scrcpy/issues/5997
(1)访问的崩溃地址设置到0x00000001(2)将dump_ok恒定设置为0 让程序流进入xc_fallback_get_emergency 在Android 13设备上触发native崩溃后,_Unwind_Backtrace函数会引起二次崩溃,logcat输出如下: ``` 08-08 17:51:40.346 1739 7301 I WindowManager: WIN DEATH: Window{3c5f695 u0 xcrash.sample/xcrash.sample.MainActivity} 08-08 17:51:40.346 1739 7301 W InputManager-JNI: Input channel object '3c5f695 xcrash.sample/xcrash.sample.MainActivity (client)' was disposed...