| 修改众 |
08-07-14 19:41 |
这个命令可以对内存数据进行整块复制操作。
repe是重复执行前缀 ecx是重复次数。测试条件如下 等于0就结束复制,执行后面的指令。 否则,ecx=ecx-1,复制1次。
movsd, move string by double word 将esi指向的数据传送到edi指向的地址,执行1次会复制4字节的内容。然后esi,edi自动加4
举个例子,我们申请2个内存 [ENABLE] alloc(testmem1,1000) alloc(testmem2,1000) registersymbol(testmem1) registersymbol(testmem2)
testmem1: db 01 01 01 01 01 01 01 01 db 01 01 01 01 01 01 01 01 db 01 01 01 01 01 01 01 01 db 01 01 01 01 01 01 01 01 testmem2: db 02 02 02 02 02 02 02 02 db 02 02 02 02 02 02 02 02 db 02 02 02 02 02 02 02 02 db 02 02 02 02 02 02 02 02 [DISABLE] dealloc(testmem1) dealloc(testmem2) unregistersymbol(testmem1) unregistersymbol(testmem2)
我们要把testmem2的内容复制到testmem1中,即让testmem1也都变成02 02 02 02 汇编脚本应该这样写
[ENABLE] createthread(copymem2to1) alloc(copymem2to1,1000) registersymbol(copymem2to1)
copymem2to1: lea esi,[testmem2] lea edi,[testmem1] mov ecx,8 repe movsd ret [DISABLE] dealloc(copymem2to1) unregistersymbol(copymem2to1) |
|