前言
libclang: C Interface to Clang
拿到字符串的开始和结束的位置,然后再进行字符串加密操作
字符串加密
导入一些必要的头文件clang-c
先使用dlopen 将其加载到内存并获取需要使用的函数指针
void *hand = dlopen("/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libclang.dylib",RTLD_LAZY);
解析字符串的代码分析
clang-c/Index.h
enum CXChildVisitResult printVisitor(CXCursor cursor, CXCursor parent, CXClientData client_data) {
: \brief Visitor invoked for each cursor found by a traversal.
- CXChildVisitResult
- CXChildVisit_Break 结束遍历
- CXChildVisit_Continue 跳过当前节点的额遍历,不再遍历它的孩子节点
- CXChildVisit_Recurse 继续遍历它的孩子节点
See Also
/Users/devzkn/bin//knpost String_encryption 字符串加密,使用clang-c接口将源代码转换成抽象语法树,并对抽象语法树进行遍历和分析,帮助我们分析代码中存在的字符串;进而对其中的字符串进行加密处理,来防止静态分析 -t security #原来""的参数,需要自己加上""
转载请注明:张坤楠的博客 > String_encryption