摘要:
今天突然无聊了一下,想起之前想的用VS来调试汇编程序。之前只是想了一下,没有去做,好吧,今天搜索一下,找到了一个教程,相当的详细具体,我喜欢按照http://blog.csdn.net/jinsonghu/article/details/5688020文章介绍的步骤,一步步来就没有问题了。其中中断了... 阅读全文
摘要:
代码省略//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////... 阅读全文
摘要:
要想在DLL共享数据,必须重新定义一个共享段,然后用函数去修改添加DLL代码:#include "stdafx.h"#pragma data_seg("MyData") //定义一个共享段int name=10;#pragma dat... 阅读全文
摘要:
直接写一遍PE结构吧 看看记得住不?MS-DOS{MZ `````e_lfanew} 64字节dos-stub 112字节 不定NT header{Signature 4IMAGE_FILE_HEADER{machineNumberOfSectionstimedatastampPointerToSy... 阅读全文
摘要:
#include "stdafx.h"#include #include using namespace std;void main(int argc, char* argv[]){ const char *p1 = "111"; string p2(p1); printf("const char ... 阅读全文
摘要:
unresolved external symbol “symbol”(不确定的外部“符号”)。 如果连接程序不能在所有的库和目标文件内找到所引用的函数、变量或标签,将产生此错误消息。一般来说,发生错误的原因有两个:一是所引用的函数、变量不存在、拼写不正确或者使用错误;其次可能使用了不同版本的连接... 阅读全文
深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const p
摘要:
char *const p;与 const char * p;的区别1)前者定义P为常量,即只能单向赋值一次,P++展开为p=p+1,重复赋值给常量,出错,例:char *const name1="John"; name1="abc"; //错误,name1指针,不能变,一个指针类型的变量,存放的... 阅读全文
摘要:
volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。由于访问寄存器的速度要快过RAM,所以编译器一般都会作减少存取外部RAM的优化。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址... 阅读全文
摘要:
1) 1.不用局部变量和全局变量实现strlen:unsigned int strlen(const char * str){_asm mov edi,str while(*str++);_asm mov ebx,str_asm sub ebx,edi_asm str,ebx return (str... 阅读全文
摘要:
ANSI-C++新标准定义的四个转换符,即static_cast、dynamic_cast、reinterpret_cast和const_cast。同时在C++环境中,原先的C-Style的类型转换仍旧可以使用。1)static_cast用法:static_cast (expression)说明:... 阅读全文
摘要:
问:vc能否同时打开两个工程, 或点击第二项目时,不会关闭掉已经打开的项目,怎样让它而另起一个IDE答:1)、XP系统:是这样,控制面板---文件夹选项----文件类型----找到DSW---高级---- ----编辑----取消使用DDE就可以了。 2)、Win7系统:在Win7操作系统下,如果是... 阅读全文
摘要:
下面已将 汉字以 字母代替编译驱动不能再空格 目录下编译 否则出错D:\VCXX\file>cd D:\VCXX\XX YY\ZZ(AA YYBB)\ZZ\YYBB\fileD:\VCXX\XX YY\ZZ(AA YYBB)\ZZ\YYBB\file>buildBUILD: Compile and ... 阅读全文
摘要:
1)i/0定时器例程 每间隔1S 调用一次I/O定时器例程 可以定义初始值 为N 每次进入定时器例程 计数-- 就变化成 NS定时器2)DPC例程 MS级别间隔,US级别间隔I/O定时器 学习NTSTATUS IoInitializeTimer( IN PDEVICE_OBJECT... 阅读全文
摘要:
设备触发中断后进入的例程当进入中断服务例程后,IRQL会提升到设备对应的IRQL级别传统PC用2片 中断控制器8259A 芯片级联-》16个中断信号源 0-15 多个设备可以共享一个中断号新的PC使用新的中断控制器,将中断信号扩展到24个Windows 将中断的概念继续拧扩展 32个中断级别 IR... 阅读全文
摘要:
StartIO主要保证 各个运行的IRP顺序执行,即串行化用系统定义的StartIO例程只能使用一个队列,这个队列会将所有的IRP进行处理 读写操作 都会混在一起进行串行处理,但我们需要将读写分别进行串行处理 ,就需要自定义StartIo当自定义StartIO时,需要我们自己负责”入队“ + ”出队... 阅读全文
摘要:
总的说来比 WINDBG要简单的多可以看到详细的调试内容但是好像不知道怎么弄成一般的工程···························待定···········今天玩了一下 感觉还是有点麻烦·· 阅读全文
摘要:
主机 WINDBG 快捷方式 设置 -b -k com:pipe,port=\\.\pipe\com_1,baud=115200,reconnect -y快捷方式全部BAT文件:start "" windbg_cn.exe -b -k com:pipe,port=\\.\pipe\com_1,ba... 阅读全文
摘要:
能够保证各个并行的IRP顺序执行,即串行化。很多时候,对设备的操作必须是串行化,驱动程序有必要将并行的请求变成串行的请求,需要用到队列。并行运行(函数执行交织在一起) 如果想一次处理每个IRP,必须采用队列将处理串行化。采用“先来先服务”原则typedef struct _KDEVICE_QUEU... 阅读全文
摘要:
对设备的的操作转换为IRP请求,而一般IRP都是由操作系统异步发送的。异步处理IRP有助于提高效率,但有时会导致逻辑错误,需要将异步的IRP进行同步化StartIOl例程,使用中断服务例程等。应用程序对设备的同步+异步操作大部分IRP是由应用=程序的WIN32 API 函数发起的。这些API EG:... 阅读全文
摘要:
Winsock2服务提供者接口。Winsock2不仅提供了一个供应用程序访问网络服务的windows socket应用程序编程接口(API),还包含了由传输服务提供者和名字解析服务提供者实现的winsock服务提供者接口SPI和ws2_32.dll。他们的层次关系如图:一个应用程序 在调用 Wins... 阅读全文
摘要:
ASLR (Address Space Layout Randomization)解决方法 总结:1 利用 未启用ASLR的模块的跳转 ,直接覆盖返回地址,!ASLRdynamicbase 查看未启用ASLR的模块中的跳转地址注意输出并不可信,重启比较较好2 基于SEH的exploit 那么!pve... 阅读全文
摘要:
当我们在调试之前 加入符号路径 和 导入库OD调试会看到一些系统函数说明 很利于调试的!!!!!!!! 阅读全文
摘要:
VMP壳 脱壳后 自动生成文件修复OEP输入表 UIF 去弄Importrec 去修复 要看准右键-》高级-》选择区段 -》FULL DUMP -》修改这个生成的文件就行了查看按钮事件 按钮事件入口被VMP掉了进去看到 jmp xxxxx 就是VMP入口右键 ZEUS 分析 看LOG窗... 阅读全文
摘要:
DEP简要说明 链接·········································DEP设置标示在KPROCESS 结构中 XP 下nt!_KPROCESS +0x000 阅读全文
摘要:
SEH表的信息在内存中是加密存放的,所以突破它可能性不大············································· 阅读全文
摘要:
解决UNC路径不受支持(远程运行cmd时出错)...用作为当前目录的以上路径启动了 CMD.EXE。UNC 路径不受支持。默认值设为 Windows 目录。系统找不到指定的文件。执行 c:\windows\system32\cmd.exe 时出错.解决方法:在注册表中,添加一个值即可.路径如下: H... 阅读全文
摘要:
中断请求: IRQ1)外部中断=硬件产生的中断 一般16个中断信号2)由软件指令int n 产生的中断可编程中断控制器: PIC高级可编程控制器 APIC 兼容PIC IRQ增加到了24个 设备管理器可以查看到这些每个IRQ有个字的优先级别 正在运行的线程随时可以被中断打断进入中断处理程序中断请求级... 阅读全文
摘要:
视频学习:编译模块 后 不用改为回环地址所以可以用 MiniSniffer抓包GET ksreg_server/chkb8.php可可验证OD载入程序F9 运行 查找字符串 (最后不要在DO搜索 容易BUG)复制所有字符串 搜索 登陆失败 信息下断点往上找寻信息找到跳过登陆失败的JNZ修改后结束... 阅读全文
摘要:
/*XP SP3 VS2008 SafeSEH 保护 利用程序的 map状态的的映射文件把它当成跳板 跳向我们的shellcode执行*/#include #include char shellcode[]="\xFC\x68\x6A\x0A\x38\x1E\x68\x63\x89\x... 阅读全文
摘要:
//MFC program :#include #pragma data_seg("Shared") HWND hwnd=NULL;#pragma data_seg()#pragma comment(linker,"/section:Shared,RWS") if(hwnd==NULL) {... 阅读全文
摘要:
编写DLL:LIBRARY EXEdiyEXPORTSLoadDLL @1#include "stdafx.h"#include void _cdecl LoadDLL(const DWORD reversed, HWND hwnd, // handle to window ... 阅读全文
摘要:
H头文件////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////typede... 阅读全文
摘要:
此方法可以说不是方法了·········必须程序要加载一个没用开启SafeSEH的DLL 才能去突破产生对话框DLL模块编译:/base:"0x11120000"#include "stdafx.h"BOOL APIENTRY DllMain( HANDLE hModule,DWORD ul_re... 阅读全文
摘要:
SafeSEH 原理:在程序调用异常处理函数前,对要调用的的异常处理函数进行一系列的有效性检测VS2003后续版本 默认启用的编译器将所有的额SEH中所有的异常处理函数的值提取出来编入一张安全SEH 表将这张表放到程序的映像中当程序调用异常处理的时候会将函数地址与安全SEH表进行匹配 检查调用的异常... 阅读全文
摘要:
首先 如果想直接覆盖 一场回调函数去劫持EXE的话 ,SafeSEH会阻止程序去执行;SafeSEH的原理很简单,就是对要调用的异常回调函数进行一系列对的有效性校验 需要 操作系统XP SP2 及后续版本 和编译器的双重支持下面说明GS的突破但感觉还是有点困难: 1 要么程序写了虚函数 2要... 阅读全文
摘要:
#pragma strict_gs_check(on) 强制设置 GS保护 VS2008当缓冲区#pragma strict_gs_check(on)void f(char str[]){ char buff[4]; strcpy(buff,str);}int _tmain(int argc, _... 阅读全文
摘要:
#include "stdafx.h"#include #include class failwest{public: char buf[200]; virtual void f1(void) { coutf1(); return 0;} 阅读全文
摘要:
printf 讲解:#includeint main(){ int a=100; float b=123.255; printf("a=%d\n",a); printf("a=%10d\n",a); printf("a=%-10d\n",a); ... 阅读全文
摘要:
在面向对象的C++语言中,虚函数(virtual function)是一个非常重要的概念。因为它充分体现了面向对象思想中的继承和多态性这两大特性,在C++语言里应用极广。比如在微软的MFC类库中,你会发现很多函数都有virtual关键字,也就是说,它们都是虚函数。难怪有人甚至称虚函数是C++语言的精... 阅读全文
摘要:
命令种类:1)标准命令 2)元命令 3)扩展命令CTRL+ 9 线程进程查看| |1 s 进程转换| 1 s 线程转换.abandon 放弃所有调试程序.reload 重新加载模块kPL 栈回溯查看 (大小写敏感).hh +指令 解释指令?h eax 得到一个32位数的高 16位数 相对应为 ... 阅读全文