- 博客(17)
- 收藏
- 关注
转载 四种传递参数的方法
主程序在调用子程序时,往往要向子程序传递一些参数;同样,子程序运行后也经常要把一些结果参数传回给主程序。主程序与子程序之间的这种信息传递称为参数传递。 参数传递有四种方法:寄存器参数传递,约定存储单元参数传递,利用CALL后续区进行参数传递,利用堆栈进行参数传递。一、寄存器参数传递优点是实现简单方便,调用方便,但是寄存器个数有限,且寄存器往往还要存放其他数据,所以只适合用于
2016-03-04 22:15:02
6418
原创 导入表
typedef struct _IMAGE_IMPORT_DESCRIPTOR { union { DWORD Characteristics; DWORD OriginalFirstThunk; //指向输入名称表(INT)的RVA }; DWORD TimeDateSt
2016-02-28 20:51:22
600
转载 字符串处理函数
头文件:Strsafe.hStringCbCopy函数用于拷贝string,且提供了目标缓冲区的大小作为参数,防止缓冲区溢出等安全问题。这个函数可用于替换以下函数的使用:strcpy, wcscpy, _tcscpylstrcpyStrCpyStringCbCopy函数原型如下:[cpp] view plaincopyprint?
2016-02-28 20:49:45
388
转载 OD快捷键
无论当前的OllyDbg窗口是什么,这些快捷键均有效: Ctrl+F2 - 重启程序,即重新启动被调试程序。如果当前没有调试的程序,OllyDbg会运行历史列表[historylist]中的第一个程序。程序重启后,将会删除所有内存断点和硬件断点。译者注:从实际使用效果看,硬件断点在程序重启后并没有移除。Alt+F2 - 关闭,即关闭被调试程序。如果程序仍在运
2016-02-23 21:22:29
450
转载 Android Studio快捷键
ActionMac OSXWin/Linux注释代码(//)Cmd + /Ctrl + /注释代码(/**/)Cmd + Option + /Ctrl + Shift + /格式化代码Cmd + Option + LCtrl + Alt + L清除无效包引用Option + Control + O
2016-01-29 10:55:11
264
转载 WinDBG常用命令
常用调试命令: 1. x : 以通配符的方式检查一个模块内的符号地址 例如: x nt!Psp* (显示内核里所有以Psp开头的内核符号) 2. lm : 显示所有已加载的模块列表 3. dd : 显示一个地址起始的32位整数值(默认显示32个整数,每行4个,共8行) 例如: dd 1014db0 L1 (L1表示只显示一个整数) 4. du : 显
2016-01-20 16:40:14
569
转载 WINDGB环境配置
解决Windows 7下编写驱动时DbgPrint / KDPrint不能打印的问题 造成这个问题的原因主要是因为Windows 7为了避免不必要的系统开销而默认关闭了调试信息过滤,因此导致我们无法正常打印出调试字符串。开启的方法非常简单,我们只需要操作注册表就可以建立一个调试打印过滤器,将以下内容保存为*.reg文件后,双击执行后即可完成设置工作。Windows Re
2016-01-20 16:38:24
572
原创 CPU使用率
定义静态this指针 :static C任务管理器Dlg * m_this;在构造函数之前初始化 :C任务管理器Dlg * C任务管理器Dlg::m_this = nullptr;在构造函数里赋值: m_this = this;之后可以用m_this调用类中任何变量。创建线程设置CPU: CreateThread(0, 0, SetCPU,0, 0, 0);
2016-01-19 14:24:14
383
原创 遍历进程和模块
进程相关操作//打开/关闭进程bool KillProcess(DWORD dwPid){ //1.打开进程 HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, dwPid); if (hProcess == INVALID_HANDLE_VALUE) re
2016-01-18 19:54:25
466
原创 标志位,逻辑段
标志位:CF(Carry Flag)进位标志:进位?1:0。ZF(Zero Flag)得0标志:运算结果为0?1:0。PF(Parity Flag)奇偶标志:低8位中1的个数为偶数?1:0。 SF(Sign Flag)符号标志:最高位为1?1:0。OF(Overflow Flag)溢出标志:结果已出?1:0。 AF(Auxiliary Carry Flag)辅助
2016-01-18 08:46:20
1502
转载 通用寄存器和段寄存器
8086/8088通用寄存器的通用性表现在: 这些寄存器除了各自规定的专门用途外,他们均可以用于传送和暂存数据,可以保存算术逻辑运算中的操作数和运算结果; 8个通用寄存器的专门用途如下: AX 字乘法,字除法,字I/O BX 存储器指针 CX 串操作或循环控制中的计数器 DX 字乘法,字除法,间接I/O SI 存储器指针(串操作
2016-01-18 08:45:25
3462
原创 OEP特征
VC2012,2013 Release oep的特征 E8????????E9????????3B0DVC2012,2013 Release 第一个CALL内的特征3145FC8D45EC50FF15????????8B4DF0Delphi7 OEP特征5个CALL5个CALL之后 几乎全0第一个CALL内有GetMouduleHandleA的调用5
2016-01-18 08:38:34
719
原创 PE文件的内存映射
文件偏移地址(File OffSet):静态反汇编工具看到的PE文件中某条指令的位置是相对于磁盘文件的。所谓的文件偏移地址是指文件在磁盘上存放时相对于文件开头的偏移。 装载基址(Image Base):PE文件装入内存时的基地址。默认情况下,EXE文件的基址为0x00400000,DLL文件的基址为0x10000000。 虚拟内存地址(Virtual Address,V
2016-01-16 16:25:16
487
原创 PE文件结构
PE(Portable Execute)文件是Windows下可执行文件的总称,常见的有DLL,EXE,OCX,SYS等。PE文件的结构一般来说如下图所示:从起始位置开始依次是DOS头,NT头,节表以及具体的节。· DOS头是用来兼容MS-DOS操作系统的,目的是当这个文件在MS-DOS上运行时提示一段文字,大部分情况下是:This program cannot
2016-01-16 16:02:37
544
转载 C语言转义字符和格式控制符参考
转义字符参考:\a:蜂鸣,响铃 \b:回退:向后退一格\f:换页\n:换行,光标到下行行首\r:回车,光标到本行行首\t:水平制表\v:垂直制表\\:反斜杠\':单引号\":双引号\?:问号\ddd:三位八进制\xhh:二位十六进制\0:空字符(NULL),什么都不做注:
2016-01-16 15:59:44
425
转载 变量、常量、静态变量的存储位置
常见的存储区域可分为:1、栈由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。2、堆由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,程序会一直占用内存,导致内存泄漏,在程序结束后,操作系统会自动回收。3、自由存储区由
2016-01-16 15:51:23
498
原创 运算符和表达式
% 取余,无法用小数取余(a%1.5),得数符号和被除数相同。自动类型转换: 当一个算术表达式中为类型不同的变量时,会进行自动类型转换。 级别高低: char->short->int->long->float->double 进行赋值运算的时候,会将右侧的值自动转换为左侧的值类型,有可能会丢失数据。强制类型转换 (变量
2016-01-16 15:49:05
248
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人