
C
森林海的棕熊
极客文化
展开
-
C 实现全类型单向链表笔记
定义#ifndef LIST_H#define LIST_H#ifdef __cplusplusextern "C" {#endiftypedef struct ListElmt_ { void *data; struct ListElmt_ *next;} ListElmt;typedef struct List_ { int size; int(*match) (const void *key1, const void *key2); void(*destroy) (voi原创 2020-09-17 10:22:56 · 138 阅读 · 0 评论 -
NDK动态注册
提供需注册类的类名完整路径const char* className= "com/hack/application/util/Enciphere";获取jclassjclass myClass = env->FindClass(className); if (myClass == NULL) { //无法找到需动态注册类,so加载失败 return -1;}3.提供需注册java函数名和native函数JNINativeMethod二维数组表示了java函数与nat.原创 2020-09-08 21:15:43 · 215 阅读 · 0 评论 -
Android so反调试
原理在Android系统中,如果进程处于调试状态,/proc/进程pid/status (等同于/proc/self/status)文件中的tracePid不为0,所以只要在加载so的时候,读取status文件,若tracePid不为0,则说明进程处于调试状态。status文件分析Name: shState: R (running)Tgid: 23809Pid: 23809PPid: 195TracerPid: 0Uid: 0 0原创 2020-08-28 13:12:24 · 1120 阅读 · 0 评论 -
C 标准库头文件说明记录
C 标准库头文件说明<assert.h> 条件编译宏,将参数与零比较<complex.h> (C99 起) 复数运算<ctype.h> 用来确定包含于字符数据中的类型的函数<errno.h> 报告错误条件的宏<fenv.h> (C99 起) 浮点数环境<float.h> 浮点数类型的极限<inttypes.h> (C99 起) 整数类型的格式转换<iso646.h> (C95 起) 符号的替代写原创 2020-07-13 15:00:35 · 221 阅读 · 0 评论