C++
C++变参宏的一个跨平台兼容问题
· ☕ 1 min read · ✍️ oser
由一个尾部逗号的问题,会引发不同平台编译器对变参宏的展开的问题,比如如下的一个例子: #define NEW_LOG(formatmsg, ...) fprintf(stdout, "%s(%u): " formatmsg "\n", __FILE__, __LINE__, __VA_ARGS__) 如果传一个可变参数,则编译正常 NEW_LOG("test for num: %d", 100); 这时候宏展开是这样的 fprintf(stdout, "%s(%u): test for num: %d\n", __FILE__,

upx压缩壳源码分析的一些关键点
· ☕ 5 min read · ✍️ oser
最近工作需要研究了一下upx针对可执行文件的压缩算法,就顺便理了一下代码的框架,下面大概的给一个分析过程。 编译调试 upx还是需要在32位linux下编译调试比较方便,windows