摘要:
## java JVM中有三个初始的类加载器:引导类加载器BootStrapClassLoader,扩展类加载器ExterntionsClassLoader,应用程序类加载器ApplicationClassLoader。 * 引导类加载器BootStrapClassLoader是顶层类加载器,负责加 阅读全文
摘要:
检测调试相关文件android_server等 int SearchFile(std::string file_path) { int ret = 0; // fork进程检测 std::string command = "cat "; command.append(file_path.c_str( 阅读全文
摘要:
# android平台的ELF hook技术 ![](https://img2022.cnblogs.com/blog/2052882/202210/2052882-20221010122231481-699432400.png) ## LD_PRELOAD hook linker程序在对elf可执 阅读全文
摘要:
android平台的so注入技术 LD_PRELOAD注入 LD_PRELOAD是linux的系统环境变量,因为android基于linux内核所以此环境变量依然存在。当linker初始化时会获取首先获取LD_PRELOAD指向的so库然后再获取elf文件的其他依赖库,所以LD_PRELOAD指向的 阅读全文
摘要:
# 调用约定 不同的调用约定需要定义参数传递的方式,堆栈平衡的方式以及返回值保存在何处。不同cpu架构使用的调用约定也不相同。 ## x86调用约定 ### _stdcall _stdcall调用约定是windows API使用的调用约定,其规定了函数在调用时参数从右向左入栈,被调用者进行堆栈平衡, 阅读全文
摘要:
# SetTimer 在一个不具有窗口的线程中创建计时器,调用线程必须具有消息循环去派遣消息,否则计时器回调函数是无法调用的。根据微软官方的解释是计时器回调函数是默认的窗口回调函数调用的,所以如果没有消息循环进行消息派遣,默认的窗口回调函数是无法执行的,对应的计时器回调函数也就不会调用。 ![](h 阅读全文
摘要:
# 非对称加密算法 典型的非对称加密算法有RSA(基于大数因子分解),DSA(基于离散对数),ECC椭圆曲线加密算法等。以RSA为例,其公钥主要包括一个公钥指数和模数,公钥模数是两个大质数的乘积,长度一般为1024位,2048位,3072位,4096位等。公钥指数是除了1,3,5,17,257以外的 阅读全文
摘要:
消息摘要算法 消息摘要算法又称为单向散列,hash算法。其主要特点是加密过程中不需要密钥,加密后会生成一个固定长度的hash值,因为一般被加密的数据都比较长,经过hash之后生成一个固定长度并且较短的数据hash值(压缩),所以不同的数据经过hash后的值可能会相同,且由hash值无法反推出原始数据 阅读全文
摘要:
函数转发 PE文件的导出表主要由三部分组成:导出名称表ENT,导出序号表和导出地址表EAT。导出名称表中存放的是导出函数对应的名称字符串的RVA,导出地址表中存放的是导出函数的函数地址的RVA,而导出序号表中就是用来连接导出名称表和导出地址表的。导出名称表和序号表一一对应,而序号表中存放了对应的导出 阅读全文
摘要:
Fiddler抓取HTTPS过程 其中Fiddler在伪造服务端的数字证书时会先对服务器的数字证书进行验证,通过查询计算机内置的与服务端匹配的根证书并获取公钥,然后对服务器的数字证书中的签名进行解密获取信息摘要,然后采用相同的hash算法生成信息摘要与其对比。 查看Fiddler的证书信息 利用ce 阅读全文