

[编程] Android14+中使用AndroidSurfaceImgui无法被scrcpy/录屏软件录制到的原因分析
前言本文仅供学习探讨之用,如果侵犯了您的权益请联系我删除。 AndroidSurfaceImguiAndroidSurfaceImgui 是一个在 Android 上的纯Native方案实现使用 Surface(同 SurfaceView) 来绘制 Dear ImGui 的库,目前支持Android5 ~ Android16。 后续为了方便称为 AImGui。 最终效果 起因在 AImGui 中,用来创建 Surface 的核心部件是 ANativeWindowCreator.h,其原理是调用libgui.so的 API SurfaceComposerClient::CreateSurface来实现的。 在实际应用的时候,发现从 Android14 开始,使用 ANativeWindowCreator.h ..
更多

[编程] C++编译时随机数生成以及应用于字符串混淆
前言本文仅供学习探讨之用,如果侵犯了您的权益请联系我删除。 原理一般来说随机数种子使用std::random_device就好,它是基于硬件熵(如果支持)的随机数种子生成器,效果是比较不错的。 它的底层原理是调用 x86 指令集扩展指令RDRAND,如果硬件不支持,则回退到使用/dev/random或者/dev/urandom。 感兴趣的话可以自行阅读 Intel 白皮书或简单参考:https://www.uops.info/html-instr/RDSEED_R64.html 在 C++ 中我们可以通过 intrinsic 的方式直接调用这条指令,例如: #include <immintrin.h> int main() { unsigned long long seed ..
更多