
汇编
fawdlstty
just a person
展开
-
用汇编构造__stdcall的sprintf函数
使用汇编构造sprintf函数。我没有去逆向sprintf函数,主要是过程太多了,并且只要知道运算结果就能大概推算出过程了。以下构造并不完整,但能实现sprintf函数大多数功能,比如字符串中的'%%'解析为'%','%x'解析为十六进制单字节数,'%X'解析为十六进制双字数,'%d'解析为十进制数,其他的出于时间关系,我就没写了。另外,为了方便调用,我将过程写为__stdcall调用原创 2012-08-25 08:23:05 · 1194 阅读 · 0 评论 -
UPX脱壳总结
我近期研究了一下UPX壳的脱壳方法,下面给出脱壳示例:UPX作为一款元老级PE加密壳,在以前的那个年代盛行,著名病毒【熊猫烧香】就是使用这款加密壳。现在我们一起来脱UPX壳来揭开它的神秘面纱。首先,PEiD载入含UPX壳的程序,结果如下:UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo然后用OD载入,OEP如下:原创 2012-12-19 16:00:14 · 16413 阅读 · 0 评论 -
深度研究C语言变长函数
关于C语言的变长函数,首先使用 stdarg.h 头文件的定义实现:#include #include int sum(int num, ...){ int sum = 0; va_list ap; va_start(ap, num); for (int i = 0; i < num; i++) { sum += va_arg(ap, int); } va_end原创 2014-01-14 17:52:24 · 954 阅读 · 0 评论