能力值:
( LV2,RANK:140 )
|
-
-
2 楼
如果完全不考虑维持寄存器的值,应该没有问题。
如果要考虑维持寄存器的值,就要考虑操作是否满足交换律和结合律。
|
能力值:
(RANK:410 )
|
-
-
3 楼
维持了寄存器数值,所有指令组合等同于nop指令.
|
能力值:
(RANK:1130 )
|
-
-
4 楼
eflag不等同于nop
|
能力值:
(RANK:410 )
|
-
-
5 楼
eflag确实不能等同.使用前后要保护和恢复一下flag.
在vm下,或许可以不考虑这个寄存器。
|
能力值:
(RANK:1130 )
|
-
-
6 楼
为什么不考虑?
|
能力值:
(RANK:410 )
|
-
-
7 楼
假使vm中不再用到eflag.
如vm里的vm_test,vm_cmp等指令的实现,不再依据eflag.就不考虑它了.
******
|
能力值:
( LV2,RANK:140 )
|
-
-
8 楼
我刚开始理解错了,以为每组指令生成后是每条随机插入的队列。
又看了一下代码, 按组插是没问题的。挺好。
|
能力值:
( LV9,RANK:180 )
|
-
-
9 楼
狼 - 哈姆太朗 - 狼 - 哈姆太朗 - 狼 - 哈姆太朗 - 狼 - 哈姆太朗
|
能力值:
(RANK:1130 )
|
-
-
10 楼
学习 + 期待
|
能力值:
(RANK:1130 )
|
-
-
11 楼
才发现少个头文件。。。
|
能力值:
(RANK:410 )
|
-
-
12 楼
//NOP_generator Module (Demo)
//ShellWolf
//2008.09.28 ver 0.0.0.1
#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
#include <time.h>
#include <stdlib.h>
#include <conio.h>
void * buff; //À¬»øÖ¸Áî´æ·Å¿Õ¼äÖ¸Õë
int Deep=4096; //µÝ¹éÉî¶È£¬¾ö¶¨À¬»øÖ¸Áî×éºÏµÄ×ÜÊý
WORD offset=0x0000;//´æ´¢¿Õ¼äµÄÆ«ÒƵØÖ·
//buff
#define Buff_64K 1024*64
#define buffptr(off) ((BYTE *)buff+off)
//rand
#define rand_WORD ((rand()+rand())&0xffff)
#define rand_REG (rand()%6+1)
#define rand_32 (rand()%31+1)
//mnemonic
#define M_NONE 0x00
#define PUSH 0x01
#define POP 0x02
#define PUSHF 0x03
#define POPF 0x04
#define PUSHAD 0x05
#define POPAD 0x06
#define INC 0x07
#define DEC 0x08
#define ADD 0x09
#define SUB 0x0a
#define ROL 0x0b
#define ROR 0x0c
#define NOT 0x0d
#define XOR 0x0e
#define NEG 0x0f
#define XCHG 0x10
#define NOP 0x11
//reg32
#define EAX 0x01
#define EBX 0x02
#define ECX 0x03
#define EDX 0x04
#define ESI 0x05
#define EDI 0x06
#define EBP 0x07
#define ESP 0x08
//reg16
#define AX 0x11
#define BX 0x12
#define CX 0x13
#define DX 0x14
#define SI 0x15
#define DI 0x16
#define BP 0x17
#define SP 0x18
//operand type
#define T_NONE 0x00
#define T_REG 0x01
#define T_IMM_7FFF 0x02//0-0x7fff
#define T_IMM_1F 0x03//1-31
#define rol(a,b) ((a<<b)|(a>>(32-b)))
#define Distribution 0x01//0 ÏßÐÔ£¬1 Èý´Î·½³Ì
struct Operand//²Ù×÷Êý
{
BYTE type;
DWORD val;
};
struct Instruction//Ö¸Áî
{
BYTE mnemonic;
struct Operand op[2];
WORD nextptr;
};
int size_Instruction=sizeof(Instruction);
|
能力值:
(RANK:210 )
|
-
-
13 楼
无法学习,只能膜拜。
|
能力值:
( LV9,RANK:180 )
|
-
-
14 楼
这是什么东东?
|
能力值:
(RANK:410 )
|
-
-
15 楼
这个是生产垃圾指令的垃圾代码。
|
能力值:
(RANK:10 )
|
-
-
16 楼
Nooby, это произошло в зарубежных странах, слышал, ваше имя.
|
|
|