在汇编里mov edx,dword ptr 中dword ptr什么意思
dword 双字 就是四个字节ptr pointer缩写 即指针[]里的数据是一个地址值,这个地址指向一个双字型数据比如mov eax, dword ptr [12345678] 把内存地址12345678中的双字型(32位)数据赋给eax参考:http://zhidao.baidu.com/link?url=JS3BKv0y8NlT78WQSDZcBVTCrsXW0whbGFlllsCwQuaaj4wbPVT43wv8hXrJ_eL5sUvBhMBTiICBrUGOKOe7Ha
MOV EAX,DWORD PTR SS:[EBP+8]
展开全部 是从ss段的ebp+8这里开始,复制4个字节到eax寄存器。
在32位环境下,这一句一般是将函数第一个参数的值放到eax寄存器中。
楼上的写法应该是错误的,lea只负责加减乘除运算,没有取内容的用法。
你说的那句用nasm来写可以写成mov eax,dword ptr [ebp + 8]理由:ebp和esp默认是ss段,所以根本不用显式说明。
eax,ebx,ecx,edx,edi,esi默认是ds段,eip默认是cs段。
...
mov dword ptr [eax], 005A5B90是什么意思
立即数005A5B90 存入 eax所指的内存,把eax存的数据看作地址edi内的数据 存入 eax存的数据+4作为目的地址,后面两个同理。
地址是32位的,指向一个字节,第一个语句,如果eax寄存器存的是2,那么执行完这条语句后内存就是上图这样的
mov eax, dword ptr [ebp+Str1] 和 lea eax, [ebp+Str1] 是不是一样的
不是一样的。
mov eax, dword ptr [ebp+Str1] 是取Str1字符串中的4个连续的字符值到eax中lea eax, [ebp+Str1] 是取Str1字符串的地址到eax中.用C表示的话,有char Str1[] = "1234";mov eax, dword ptr [ebp+Str1] ; eax = '1234', 即0x34333231lea eax, [ebp+Str1] ; eax = Str1, 是Str1的地址,类似c的&取地址操作
CMP DWORD PTR SS:[EBP+8],0可以替换吗
stos,串操作指令,该指令把寄存器EAX中(0)的值存于以指针ES:EDI(ES=023H为段选择子,EDI=12EAB5H为线形地址偏移,经段描述符后,变为线性地址,再经分页机制,转为物理地址)所指向内存单元为起始的一片存储单元里,并根据标志位DF对寄存器DI作相应增减。
该指令不影响任何标志位。
mov eax,[eax+10]
CS DS SS起始地址默认情况下,只听到说放弃了SS。
x86环境中访问的堆栈使用的SS,这是不是Windows的软件可以说了算。
,DWORD PTR内存操作数是4个字节(双字的指针双字指针),WORD PTR 2个字节,字节指针代表一个字节,QWORD PTR说,8个字节。
一般来说,只有目标内存的即时数时,有必要明确写出来:MOV DWORD PTR [EAX],0 书面的根本判断不出来的,编译器默认会写几个字节被视为字节指针。
MOV ECX,DWORD PTR DS:[ESI+8] 这个ESI的值怎么找
......这个不是C32,而是OD,这种改法是有一定的局限性的,改时一定要根据上下文理性地去改,要不然运气很重要。
A开头============================================================================ add 改adc ADD 改ADC ADD 1 改 sub -1 add dword ptr ss:[ebp-130],edx ---------adc dword ptr ss:[ebp-130],edx ADD [EAX],CH----------------------------ADD [EAX],DH ADD [EAX],BH 0038 ----------------------ADD [EAX+40],AL 0040 40 ADD [EAX+EAX*2+46],AL ------------------ADD [EAX+EAX*2+46],CL ADD [EAX+40],DL 0050 40 ----------------0058 40 ADD [EAX+40],DL ADD AH,CH 00EC -------------------------00F4 ADD AH,DH add dword ptr ss:[ebp-130],edx -------- adc dword ptr ss:[ebp-130],edx C开头============================================================================ CMP 改SUB call 复件_(4).004CF607 ----------------- push 复件_(4).004CF607 CMP DWORD PTR DS:[100170A4],0 -------------sub DWORD PTR DS:[100170A4],0 CALL ---------看到了CALL跟随进去看NOP就可以把CALL的地址该成NOP 方法2--看下附近有没有MOV修该成NOP看下可以免杀不。
可以的话该XOR 方法3--看附近jnz跳转该下跳转的地址/可免杀不/ CALL EAX |CALL EBX 比效指令 CMP:看下是个比效指令 在看下JNZ条件转移指令 就是说CMP比效正确就跳那我们可以把CMP用NOP掉在把JNZ该成JMP 不进行CMP比效 CMP ESI,1 JNZ SHORT VVV.1000D793 ============================================================================ D开头============================================================================ DAA 组合的十进制加法调整指令 --------DAS 减法的十进制调整.=========================================================================== J开头=========================================================================== JE 改 JNB JNZ 改 JNL jnz 改 JB JE 改 JNA je 改 jb jnz 改 jg js 改 jp je 改 jle jnz 改 jle je 改 jge JE 改 jnz JE 改 JB JNS 改 POP ECX JNS 改 jnc-jnb JNB 改 JGE jnb short fsg2_0.0040015D----------------ja short fsg2_0.0040015D JMP NEAR [1071c]---------------------JMP NEAR [1071B] jnz--je-jmp修改中要看下跳的地址是不是很重要说明[1] JNZ 00874E85--MOV EAX,88B6D0 可以是该成JE 00874E85--MOV EAX,88B6D0=========================================================================== L开头=========================================================================== LEA EBP,[ESP+10] 改 LEA EBP,[ESP+10] ========================================================================== M开头=========================================================================== MOVSX 改 MOVZX MOV EBP,ESP 改 AND AH,CH MOV [EBP-18],ESP 改 MOV [EBP-18],AH MOV EAX,[ESP+10] 改 MOV EAX,[ESP+10] MOV [ESP+10],EBP 改 MOV [ESP+10],EBP mov [ebp-256], eax 改 adc [ebp-226], eax MOV EDI,[EBP+10] 改 MOV EDI,[EBP+11] MOV EBX,DWORD PTR DS:[ESI] 改 XOR EBX,DWORD PTR DS:[ESI] MOV EBP,ESP--------AND AH,CH MOV EBX,DWORD PTR DS:[ESI]---------XOR EBX,DWORD PTR DS:[ESI] ===================================================================================================================================================== P开头=========================================================================== push 改call PUSH EBX PUSH EDI PUSH ESI PUSH EAX PUSH EDI PUSH ESI PUSH EAX PUSH EBX =========================================================================== S开头=========================================================================== sbb 改adc sub 改mov SHL 改 SAL SAR 改 SHR sub ebp,7---------- add ebp,-7 sub ebx,eax----------sbb esi,ecx SBB ECX,DWORD PTR DS:[ESI+2]----------ADC ECX,DWORD PTR DS:[ESI+2] PUSH EAX 改 PUSH EBX SUB ESP,EAX 改 SUB ESP,EAX PUSH EBX 改 PUSH EDI PUSH ESI 改 PUSH EAX PUSH EDI 改 PUSH ESI sub ebx,eax----------sbb esi,ecx========================================================================== T开头=========================================================================== TEST ESI,ESI-------改------- AND ESI,ESI =========================================================================== X开头=========================================================================== xor...
转载请注明出处51数据库 » mov dword ptr ss:[es