摘要:调试器通常有两次机会来处理同一个异常:首次处理异常和二次处理异常。调试器第一次附加到进程时,会发生一个异常,然后被调试的程序停止执行,此时调试器开始获得控制权。调试器可以自己处理异常,也可以将异常转给被调试的应用程序处理 如果程序注册了一个异常处理函数,他会在调试器处理异常后,获取处理异常的权限。
阅读全文
摘要:最近面试面的神经 终于有一家赏了个offer
阅读全文
摘要:// Github 上开源项目 阅读笔记#include #include #include #include #define SHELLCODE ("haha") #define RTL_MAXIMUM_ATOM_LENGTH (255) #define SHELLCODE_FUNCTION_POINTERS_OFFSET (25) #define X86_RET ('\xc3'...
阅读全文
摘要:http://www.cnblogs.com/taonull/p/3944745.html retn操作:先eip=esp,然后esp=esp+4 retn N操作:先eip=esp,然后esp=esp+4+N
阅读全文
摘要:挂起目标线程,然后把其eip指针指向我们事先设定好的代码区域(shellcode),shellcode负责在目标进程中创建线程,创建完成后,控制传回原来被我们改过的eip的线程。 1)获取目标进程的主线程并将其挂起 2)取得进程上下背景文,保存eip值到orgEip 3)通过结合orgEip创建可以
阅读全文
摘要:首先i,j两个指针指示的位置(从头开始匹配),当发现失配的时候就判断子串的后一位在母串的字符是否在子串中存在? 若存在则将该位置和子串中的该字符对齐,再从头开始匹配; 若不存在 直接向后移动l2;
阅读全文
摘要:求 1+2+...+n,要求不能使用乘除法、for、while、if、else、switch、case 等关键字以及条件判断语句 (A?B:C)。
阅读全文
摘要:size_t my_strlen(const char* str) { const char* ptr = str; for (; ((int)ptr & 0x03) != 0; ++ptr) { if (*ptr == '\0') return ptr - str; } unsigned int* ptr_d =...
阅读全文
摘要:#include #include using namespace std; void* my_memcpy(void* dest,const void* src,unsigned int count) { if (dest == NULL || src == NULL) { return NULL; } void * ret = d...
阅读全文
摘要:// LRU.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #include #include using namespace std; void LRU() { vector v; cout > L1; cout ::iter...
阅读全文
摘要:解决多线程的inlineHook 一个需要正常的API 一个需要Hook的API 7602285F nop 76022860 nop 76022861 nop 76022862 nop 76022863 nop 76022864 mov edi,edi 完美解决
阅读全文