0%

前言

如何优雅的写博客?

在折腾图床的道路上一去不复返了2333333

为了解决markdown写博客的时候的图片引用问题,我搭建了一个图床,使用的程序是chevereto,图片引用的问题解决了,但是写博客的时候传图还是不够优雅,所以我又折腾了typora的插件,详细请看:

typora-chevereto之博客图片终极解决方法

这篇文章算是上一篇的后续,炒了个冷饭,不过确实找到了一个更优雅的办法。

阅读全文 »

前言

生命不息,折腾不止。话说博客没写几篇,相关的一些工具倒是折腾了一堆233333

对于用markdown来写博客的用户来说,图片的引用问题是个众所周知的难题。其实也可以直接放在本地,但是不管是内容分享和管理都不够友好。最主要的,很多人喜欢资源文件和文章本身分开(比如我),这样看起来比较整洁,也比较方便。

所以一般hexo用户会用图床来存放图片,然后文章中直接引用远程链接即可。对于读者来说,反正读博客是在web端,那么在哪找图片是一个无感知的问题。

目前的图床应用很多,作为一个不愿意去到处注册id,同时VPS比较多的人来说,我毫不犹豫的选择了自建图床。毕竟还是自己的用起来自由。

图床应用我选的chevereto,个人用户来说免费版就够了,还可以当做个人相册,安装教程略,网上一大把。

关于如何将之前的本地图片迁移到chevereto可以看我之前的这篇文章:批量将hexo文章中的本地图片转到chevereto图床

阅读全文 »

前言

这几天在重新弄博客,基本上已经完工了,但是博客的链接还是不够友好。

因为hexo中的链接默认是年月日划分的,这样对SEO很不友好,所以就顺便做了博客的链接持久化,主要是使用的hexo-abbrlink这个插件,方法百度一堆,这里不再赘述。

在这之前因为看教程说会和hexo-asset-image插件冲突,所以一步到位搭了个图床,用来存放我的博客图片,也避免了日后图片过多超过github限制的情况。

阅读全文 »

最近在kali用的比较多,于是想把Hexo也迁移过来,所以进行了一些工作,但是等到迁移完成之后,编译的时候就傻眼了,时间全乱了……

原本的文章发布时间全都看不到了,变成了执行hexo g命令的时间。

于是到处去寻找解决办法,发现原来是YAML文件头的问题。

因为之前写博客都是在windows下,所以开新文档的时候基本上没有使用hexohexo new命令,都是用typora新开一个文档就开始弄,然后手动创建一个文件夹存放图片等依赖文件,只有生成静态页面和发布的时候才用到了hexo的命令。

而用hexo new生成新文章的时候,hexo会自动创建同名文件夹用来存放图片,并在文章对应的markdown文件开头添加YAML信息,包括了文章的title,发布时间,tags等一些信息,而生成静态文件的时候,文章的发布日期就是在YAML头部信息中获取的。

平时我写文档的时候,都是手动指定title,所以markdown文件的YAML头部信息中就只有title,没有其他信息。

在生成静态文件的时候,如果没有指定发布日期,那么hexo会把文件的修改时间当成发布时间。

然而当我们迁移了目录之后,文件的修改时间被改变了,所以生成的时候,导致发布时间全都变成了最后的修改时间。

阅读全文 »

这个文件是学习git操作的主要改动目标,我会在这里记录我的学习笔记,顺便用这个文件的改动过程来记录git的各项操作。

以下内容是我在廖雪峰官网上学习git教程 的相关笔记,部分内容也来自该网站,此处只做记录。


阅读全文 »

Nautilusgnome桌面环境的文件管理器,但是功能还是比较有限,作为一个经常在windows下写代码的人,对windows文件管理器的快捷方式很受用。

虽然nautilus也可以右键选择”在终端打开“,但是只能在窗口的空白处点击右键才有这个选项,一旦光标选中了文件或文件夹,右键菜单中就没有“在终端打开”的选项了。

如果文件太多,已经填满了窗口的情况下,根本就不可能调出这个菜单了,所以只能手动复制路径,然后在终端中cd过去,既影响效率又影响心情。

阅读全文 »

0x00 编译安装Aria2c

编译安装Aria2

1
2
3
4
5
6
apt-get install libxml2-dev libcppunit-dev autoconf automake autotools-dev autopoint libtool
git clone https://github.com/aria2/aria2.git
cd aria2
autoreconf -i
./configure
make && make install

然后等待编译完成,中间无报错即可,这时候就安装完成了。

编译完成的二进制文件在aria2/src/aria2c

阅读全文 »

Pydbg学习笔记一 ——调试器基础使用

前面Ctypes系列的笔记其实出来第一篇以外都应该算是Pydbg模块的一部分,通过对win32进程管理相关API的学习,我们实现了包括断点、读写内存数据、进程控制、附加调试等一系列的功能。

Pydbg库是在上面基础上的封装,有更完善更强大的功能。

阅读全文 »

ctypes学习笔记三 ——断点

捕获调试事件

前面实现了获取CPU寄存器状态的方法,接下来可以继续对进程调试事件进行处理。

首先进入进程,然后等待并获取调试事件,用到的API如下:

1
2
3
4
BOOL WaitForDebugEvent(
LPDEBUG_EVENT lpDebugEvent,
DWORD dwMilliseconds
);

这个函数一般是调试器主循环的组成部分。

调试事件信息定义在一个结构体里面:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
typedef struct DEBUG_EVENT { 
DWORD dwDebugEventCode;
DWORD dwProcessId;
DWORD dwThreadId;
union {
EXCEPTION_DEBUG_INFO Exception;
CREATE_THREAD_DEBUG_INFO CreateThread;
CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
EXIT_THREAD_DEBUG_INFO ExitThread;
EXIT_PROCESS_DEBUG_INFO ExitProcess;
LOAD_DLL_DEBUG_INFO LoadDll;
UNLOAD_DLL_DEBUG_INFO UnloadDll;
OUTPUT_DEBUG_STRING_INFO DebugString;
RIP_INFO RipInfo;
}u;
};

其中,dwDebugEventCode值反映了被捕获的事件类型。

阅读全文 »