
逆向
youngseaz
这个作者很懒,什么都没留下…
展开
-
plt表、got表与延迟绑定(Lazy Binding)
准备实验环境Ubuntu-Desktop 18.04$ uname -aLinux ubuntu 5.4.0-48-generic #52~18.04.1-Ubuntu SMP Thu Sep 10 12:50:22 UTC 2020 x86_64 x86_64 x86_64 GNU/Linuxso.2.27源码源码程序如下,我将其命名为plt.c#include<stdio.h>int main(){ puts("learning plt and got!\n");原创 2020-11-09 20:34:41 · 1509 阅读 · 0 评论 -
反调试技术
Windows反调试技术Windows API反调试IsDebuggerPresent用OD加载一个带IsDebuggerPresent的程序,在IsDebuggerPresent下硬件断点跟进,发现IsDebuggerPresent的汇编实现如下:MOV EAX,DWORD PTR FS:[0x30]MOVZX EAX,BYTE PTR DS:[EAX+0x2]RETNFS寄存器指向的是TEB(线程环境块),其数据结构如下:typedef struct _NT_TEB{ NT_原创 2020-11-05 01:26:40 · 1159 阅读 · 0 评论 -
upx手动脱壳
upxupx是一个开源的工具,可以到github下载upxupx简单的用法upx src.exe命令将src.exe加壳upx src.exe -o dst.exe命令将src.exe加壳并另存为dst.exeupx手动脱壳原创 2020-10-26 01:23:33 · 7217 阅读 · 1 评论 -
COERCE_DOUBLE的含义
在IDA反汇编的时候,遇到如下代码 v8 = COERCE_DOUBLE(strtoull(&v25, (char **)&v22, 16)); v9 = COERCE_DOUBLE(strtoull(&v23, (char **)&v22, 16));那么COERCE_DOUBLE表示什么意思呢?其实是一个强制类型转换,相当于*(double *) & (strtoull(&v23, (char **)&v22, 16))COERCE_原创 2020-08-22 15:25:41 · 1429 阅读 · 0 评论 -
固件分析
相关链接https://paper.seebug.org/613/#11https://www.angelic47.com/archives/97/https://www.jianshu.com/p/12d8f509169c原创 2020-08-10 21:50:53 · 410 阅读 · 0 评论