泽棋的博客

记录思路、方法、技术

Android开发小Tips(持续更新)

Windows下更改AndroidStudio的.android文件夹默认路径 AndroidStudio默认会把.android文件夹创建在C盘中。 要变更.android的路径,首先,创建环境变量ANDROID_SDK_HOME,值设置为你想变更新路径,例如D:\sdk 然后把原有的C盘中的.android文件夹拷贝到新路径中,修改avd文件夹下安卓模拟器的.ini配置,将配置 文件中的路径改为新路径。 重启AndroidStudio即可。

好用的Android渗透测试开源框架

MobSF框架 docs详见:https://mobsf.github.io/docs/#/ 其中,动态调试环境的搭建是需要注意的,详见:https://mobsf.github.io/docs/#/dynamic_analyzer Drozer 有几处需要注意的: 1、需要注意的是,drozer只兼容python2.7。 2、其依赖的protobuf也必须安装老版本的才行,具体命令:pip install protobuf==x.x.x 3、命令行运行drozer必须cd到drozer的安装路径下执行,否则可能提示出现错误。 4、如果存在import error错误,可以把DROZER_HOME/Lib/site-packages下的文件夹拷贝到python安装目录下的site-packages内。 drozer的项目地址为:https://github.com/FSecureLABS/drozer

Universal Dependencies

https://universaldependencies.org/ Universal Dependencies (UD) is a framework for consistent annotation of grammar (parts of speech, morphological features, and syntactic dependencies) across different human languages. UD是一个为了对不同人类语言的语法(词性、词法特性、句法依赖)进行连续标记的框架。 Morphology The morphological specification of a (syntactic) word in the UD scheme consists of three levels of representation: A lemma representing the semantic content of the word. A part-of-speech tag representing the abstract lexical category associated with the word. A set of features representing lexical and grammatical properties that are associated with the particular word form.

自然语言处理中的pos tags

从句级别 S - 简单的陈述句。 SBAR - 从属连词引导的从句。 SBARQ - wh-开头的单词或者wh-开头的短语的直接问句。 SINV - 倒装句。 SQ - 倒装的是/否疑问句,或者主从句是一个wh-开头的问句,在SBARQ中跟随着wh-短语。 短语级别 WHADJP - wh-形容词(wh-adjective)短语。 WHAVP - wh-副词(wh-adverb)短语。 WHNP - wh-名词短语。 WHPP- wh-介词短语。 ADJP - 形容词短语。 ADVP - 副词短语。 CONJP - 连词短语。 FRAG - fragment(片段)? INTJ - 感叹词,插入语。类似于POS tag UH(插入语, yes)。 LST - 标记列表。 包括周围的标点符号。 NAC - 不是一种句子中的成分,用来显示在一个名词短语中,特定的置于名词之前的修饰语的范围? NP - 名词短语。 NX - 用来复杂的名词短语前标识名词短语的头部。 PP - 介词短语。 PRN - 插入语。 PRT - 小品词(与动词构成短语动词的副词或介词, look for, put off)。

解决'PHDR segment not covered by LOAD segment'的编译错误

出错的Linux环境中,编译用的是xPacks的嵌入式程序开发工具链,编译调用的是arm-none-eabi-gcc,通过 --version 命令发现其版本为2020年的新版本。 相反,在windows环境下,编译不会出错。编译调用的是2018年的版本,是7.x的老版本。 因此,将Linux环境下的工具链替换为与windows环境相同的老版本即可。 具体PHDR segment相关的知识尚未理解。

使用DataflowSanitizr实现污点追踪

示例程序 test.c #include <sanitizer/dfsan_interface.h> #include <assert.h> int main(void) { int i = 1; dfsan_label i_label = dfsan_create_label("i", 0); dfsan_set_label(i_label, &i, sizeof(i)); int j = 2; dfsan_label j_label = dfsan_create_label("j", 0); dfsan_set_label(j_label, &j, sizeof(j)); int k = 3; dfsan_label k_label = dfsan_create_label("k", 0); dfsan_set_label(k_label, &k, sizeof(k)); dfsan_label ij_label = dfsan_get_label(i + j); assert(dfsan_has_label(ij_label, i_label)); assert(dfsan_has_label(ij_label, j_label)); assert(!dfsan_has_label(ij_label, k_label)); dfsan_label ijk_label = dfsan_get_label(i + j + k); assert(dfsan_has_label(ijk_label, i_label)); assert(dfsan_has_label(ijk_label, j_label)); assert(dfsan_has_label(ijk_label, k_label)); return 0; } sanitizer/dfsan_interface.

使用hugo搭建github博客

1. 安装hugo并生成“网站” 1.1 安装  参照网站即可: https://www.gohugo.org/  实际的安装只需要去hugo的github的release https://github.com/gohugoio/hugo/releases 中将hugo的可执行文件下载下来即可。例如,对于windows系统,下载windows版的可执行文件即可,为了方便调用,我们可以把可执行文件(hugo.exe)的路径加入到环境变量PATH中。 1.2 创建站点  执行命令 hugo new site zeqi_blog 创建一个站点,命令会在当前路径创建一个名为 zeqi_blog 的文件夹。 2. 创建gitbub.io仓库  在github上新建仓库,命名为xxx.github.io,其中,xxx是你的github用户名。  这样创建出来的仓库便可以通过 https://xxx.github.io 进行访问。  创建好之后,使用github Desktop软件(详见 https://desktop.github.com/)将该项目克隆至zeqi_blog文件夹内,如图: 3. 使用hugo生成博客的静态网页 3.1 安装主题  从 https://www.gohugo.org/theme/ 中下载一个主题。主题通常为github上的开源项目,我们以zip压缩包的形式下载。在此,我下载了blackburn主题,链接为 https://themes.gohugo.io/themes/blackburn/。  解压缩zip文件到1.2节中创建的站点的 zeqi_blog/themes 文件夹中,如图:  拷贝 zeqi_blog/themes/blackburn/exampleSite/config.toml 到 zeqi_blog/config.toml,替换原始的 config.toml。  打开 config.toml,参照 https://www.gohugo.org/doc/overview/configuration/、 https://themes.gohugo.io/themes/blackburn/ 给出的指导以及 config.toml 中的注释进行配置。 在config.toml中 修改配置: baseUrl = "https://zeqiii.github.io/" 修改配置: theme = "blackburn" # 和themes文件夹中的主题文件夹名相同 3.

解决'undefined reference to xxx'的编译错误的一个思路

一个小实验 编辑hello.h如下: #ifndef HELLO_H #define HELLO_H void myprint(const char* name); #endif 编辑hello.c如下: #include <stdio.h> void myprint(const char* name) { printf(name); printf("\n"); _zeqi_printf("end\n"); } 编辑main.c如下: #include "hello.h" int main() { myprint("test"); return 0; } 执行如下命令进行编译,生成hello.o和main.o。: gcc -c hello.c gcc -c main.c 执行如下命令生成可执行文件: gcc hello.o main.o -o hello 会出现以下错误: /usr/bin/ld: hello.o: in function `myprint': hello.c:(.text+0x38): undefined reference to `_zeqi_printf' collect2: error: ld returned 1 exit status 可知出现错误的原因是hello.c的myprint函数中调用的_zeqi_printf函数未定义。 解决问题的方法就是让编译器找到_zeqi_printf的定义。为此,编辑repair.c如下: #include <stdio.h> void _zeqi_printf(const char* name) { printf("zeqi_"); printf(name); printf("\n"); } 执行如下命令编译repaire.