dword 双字 就是四个字节ptr pointer缩写 即指针[]里的数据是一个地址值,这个地址指向一个双字型数据比如mov eax, dword ptr [12345678] 把内存地址12345678中的双字型(32位)数据赋给eax 将地址为“ecx寄存器中数值”,长度为4的数据,复制到eax寄存器中…
nasm来写可以写成mov eax,dword ptr [ebp + 8]理由:ebp和esp默认是ss段,所以根本不用显式说明.          eax,ebx,ecx,edx,edi,esi默认是ds段,          eip默认是cs段. 补充: 上面给的是masm用法 nasm是mov eax,dword [ebp + 8] 我自己用的nasm,经常说nasm语法说习惯了.…
dword 双字 就是四个字节ptr pointer缩写 即指针[]里的数据是一个地址值,这个地址指向一个双字型数据比如mov eax, dword ptr [12345678] 把内存地址12345678中的双字型(32位)数据赋给eax 8086CPU的指令,可以处理两种尺寸的数据,byte和word.所以在机器指令中要指明,指令进行的是字操作还是字节操作.对于这个问题,汇编语言中用一下方法处理. (1)通过寄存器名指明要处理的数据的尺寸. 例如: 下面的指令中,寄存器指明了指令进行的是字操…
今天调试程序的时候,发现一个奇怪的问题,之前调试都没问题的,今早加了一点东西,就出现错误,跳到调试位置,如下4行红色部分 ; Find next lower page and probe cs20: sub eax, _PAGESIZE_ ; decrease by PAGESIZE test dword ptr [eax],eax ; probe page. jmp short cs10 _chkstk endp end 感觉好奇怪,然后断点调试,连程序的入口都没进就出现了这个错误,好郁闷.…
问题的出现 使用VS2017编写程序时,程序编译可以通过,但运行时就会弹出错误 经过查证发现: 这跟局部数组变量定义所分配的最大空间设置大小有关. 局部变量的申请空间是存放于栈中,windows里默认栈内存是1M,所以当申请空间大于1M时就会出现溢出错误. 在出错的代码中,也确实出现了这个问题 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #define MaxSize 100005 int main() { int Data[MaxSi…
本文链接:https://blog.csdn.net/ypist/article/details/8467163今天读代码时,忽然跳出如下一条指令==>>汇编代码: rep stos dword ptr es:[edi] 在网上查了相关资料显示:/************************************************************/lea     edi,[ebp-0C0h] mov     ecx,30h mov     eax,0CCCCCCCCh re…
LES BX, DWORD PTR DS:_OSTCBCur ;OSTCBCur->OSTCBStkPtr = SS:SP!!! ], SS ;将当前SS(栈的基地址)寄存器值存放至当前任务控制块的2,3内存单元 ], SP ;将当前SP(栈顶的偏移量)存放至当前任务控制块的0,1内存单元 首先讲讲LES指针的功能:LES的功能有点像C语言的*.     LES REG,MEM          参与操作的寄存器不仅有REG,还有ES寄存器.在16位系统中,寄存器为16位,很显然,MEM所指向的…
当在函数中申请占用空间很大的数组.结构体时,会产生该问题. 由于局部变量的申请空间存放于栈中,windows里默认栈内存是1M 所以当申请空间大于1M时就会出现溢出错误 通过debug就会进入以下文件chkask.asm chkstk.asm - C stack checking routine 解决方法: 扩大栈空间的大小 VS设置项目属性: 项目->属性->链接器->系统->堆栈保留大小 注:这里填的是字节数如果你想把他扩大为2M的话,1024*1024*2 = 2097152…
系统 : Windows xp 程序 : Crackme-xp 程序下载地址 :http://pan.baidu.com/s/1slUwmVr 要求 : 编写注册机 使用工具 : OD & IDA 可在看雪论坛中查找关于此程序的破文:传送门 这是一个拥有强大反调试机制的cm,无法查询到关键子串.下获取窗口文本的断点没用,设置对按钮下消息断点都没用. 然后用IDA打开后却发现了函数表里有: .................. 这个懂点英文的人都能看出来是 注册按钮的处理函数吧?所以前面那么多防护…
以前玩游戏遇到一些实在过不去的管卡,经常会找一些游戏修改软件来修改游戏,让自己变得无比强大,将boss一路砍瓜切菜过足游戏瘾.其实游戏修改软件的功能大多都比较简单,我们可以通过windbg的一些简单命令同样也可以实现. 在这片文章中我们会通过一个简单的winform登录程序来演示将一系列简单调试命令联合运用,破解登录程序. 测试程序 登录程序界面 登录验证代码 private void btnLogin_Click(object sender, EventArgs e) { if (txtUse…