ÄúÕýÔڲ鿴 "²¡¶¾·ÖÎö" ·ÖÀàϵÄÎÄÕÂ
2009-01-07 21:07
2007-11-28 14:05
ÕâÀಡ¶¾Ò»°ãÊÇ“system\drivers\”ϵÄÒ»¸ösysÎļþ£¬¸Ä“RunOnce”ÏÆô¶¯µÄÔ磬Í˳öµÄÍí£¬É±ÆðÀ´ÆÄ·Ñ¾«Éñ¡£ËûÃǶàפÁôÄڴ棬Ôڹػúʱ»ØÐ´£¬¼´Ê¹É±ÁËËûµÄ“±¾Ì唣¬Ò²É±²»ÁËËûµÄ“ |
2007-06-08 17:09
Exploit.MSWord.b²¡¶¾ÀûÓÃÁËMS07-014©¶´¡£¸Ã²¡¶¾ÊǸöwordÎļþ£¬°üº¬ÓзǷ¨Êý¾Ý£¬´ò¿ª´ËÎļþʱword³ÌÐòÏÔʾ´íÎ󣬲¢Ö´ÐжñÒâ´úÂë |
2007-05-22 12:25
5ÔÂ18ÈÕ£¬Åµ¶ÙÎ󱨣¬²Î¼û£º
|
2006-10-25 15:53
½üÆÚ£¬ÁõÌÎÌÎÌá³öÒ»Ö֓ŤÇú±ä»»¼ÓÃÜ”·½·¨¡£ÆäÔÀíÊǶÔOBJÎļþ×öÖ¸ÁîÌæ»»£¬È»ºóÔÙÁ´½ÓΪPE¡£ÕâÖÖ»¨Ö¸ÁîµÄ·½·¨×î³õ¶àÓÃÓÚ±äÐμӿÇÒýÇæ£¬Ö®Ëù²»Í¬µÄÊÇ£¬±äÐμӿÇÒýÇæÔÚ½â¿Ç²¿·Ö£¬¶ø“ŤÇú±ä»»¼ÓÃÜ”·½·¨Ö±½Ó¶ÔÔʼÎļþ±äÐΣ¬ÒÔ´ïµ½¼ÓÃÜÄ¿µÄ¡£
¾ÙÀýÈçÏ£º
¼ÓÃÜǰ´úÂ룺
¼ÓÃܺó´úÂ룺
ÀûÓÃÕâÖÖ¼¼ÊõµÄ²¡¶¾Ò²·¢ÏÖ¹ý£¬µ«ÏÞÓÚÌæ»»Ä³¸öº¯Êý»òÕßijÌõÖ¸ÁÏóÕâÑùÓù¤ |
2006-10-16 14:49
/* 0F 81 */ { "jno", 0, Jv, XX, XX },
/* 0F 82 */ { "jb", 0, Jv, XX, XX },
/* 0F 83 */ { "jnb", 0, Jv, XX, XX },
/* 0F 84 */ { "jz", 0, Jv, XX, XX },
/* 0F 85 */ { "jnz", 0, Jv, XX, XX },
/* 0F 86 */ { "jbe", 0, Jv, XX, XX },
/* 0F 87 */ { "jnbe", 0, Jv, XX, XX },
/* 0F 88 */ { "js", 0, Jv, XX, XX },
/* 0F 89 */ { |
2006-10-16 14:47
static BxDisasmOpcodeInfo_t BxDisasmOpcodes[256*2] = {
// 256 entries for single byte opcodes
/* 00 */ { "add", 0, Eb, Gb, XX },
/* 01 */ { "add", 0, Ev, Gv, XX },
/* 02 */ { "add", 0, Gb, Eb, XX },
/* 03 */ { "add", 0, Gv, Ev, XX },
/* 04 */ { "add", 0, AL, Ib, XX },
/* 05 */ { "add", 0, eAX, Iv, XX },
/* 06 */ { "push", 0, ES, XX, XX },
/* 07 */ { "pop", 0, ES, XX, XX },
|
2006-10-16 14:46
// DC (modrm is outside 00h - BFh) (mod == 11)
/* DC C0 */ { "fadd", 0, STj, STj, XX },
/* DC C1 */ { "fadd", 0, STj, STj, XX },
/* DC C2 */ { "fadd", 0, STj, STj, XX },
/* DC C3 */ { "fadd", 0, STj, STj, XX },
/* DC C4 */ { "fadd", 0, STj, STj, XX },
/* DC C5 */ { "fadd", 0, STj, STj, XX },
/* DC C6 */ { "fadd", 0, STj, STj, XX },
/* DC C7 */ { "fadd", 0, STj, STj, XX },
/* DC C8 */ { "fmul", 0, STj, STj, XX },
/* DC C9 */ { "fmul", |
2006-10-16 14:44
/* ************************************************************************ */
/* FPU Opcodes */
// floating point instructions when mod!=11b.
// the following tables will be accessed like groups using the nnn (reg) field of
// the modrm byte. (the first byte is D8-DF)
// D8 (modrm is outside 00h - BFh) (mod != 11)
static BxDisasmOpcodeInfo_t BxDisasmFPGroupD8[8] = {
/* 0 */ { "fadd", 0, Md, XX, XX },
/* 1 */ { "fmul", 0, Md, XX, XX },
/* 2 */ { "fcom", 0, Md, XX, XX },
/* 3 */ { "fcomp", 0, Md, XX, XX },
/* 4 */ { "fsub", 0, Md, XX, XX },
/* 5 */ { "fsubr", |
2006-10-16 14:40
static BxDisasmOpcodeInfo_t BxDisasmGroupG2Ev[8] = {
/* 0 */ { "rol", 0, Ev, Ib, XX },
/* 1 */ { "ror", 0, Ev, Ib, XX },
/* 2 */ { "rcl", 0, Ev, Ib, XX },
/* 3 */ { "rcr", 0, Ev, Ib, XX },
/* 4 */ { "shl", 0, Ev, Ib, XX },
/* 5 */ { "shr", 0, Ev, Ib, XX },
/* 6 */ { "shl", 0, Ev, Ib, XX },
/* 7 */ { "sar", 0, Ev, Ib, XX }
};
static BxDisasmOpcodeInfo_t BxDisasmGroupG2E |
2006-10-16 14:39
static BxDisasmOpcodeInfo_t BxDisasmGroupSSE_0fc2[4] = {
/* -- */ { "cmpps", 0, Vps, Wps, Ib },
/* 66 */ { "cmppd", 0, Vpd, Wpd, Ib },
/* F2 */ { "cmpsd", 0, Vsd, Wsd, Ib },
/* F3 */ { "cmpss", 0, Vss, Wss, Ib }
};
static BxDisasmOpcodeInfo_t BxDisasmGroupSSE_0fc3[4] = {
/* -- */ { "movnti", 0, Md, Gd, XX },
/* 66 */ { "(invalid)", 0, XX, XX, XX },
/* F2 */ { "(invalid)", 0, XX, XX, XX },
/* F3 */ { "(invalid)", 0, XX, XX, XX }
};
static BxDisasmOpcodeInfo_t BxDisasmGroupSSE_0fc4[4] = {
/* -- */ { "pinsrw", 0, Pq, E |
2006-10-16 14:35
void disassembler::resolve32_mod0(unsigned mode)
{
const char *mod_rm_seg_reg;
if (seg_override)
mod_rm_seg_reg = seg_override;
else
mod_rm_seg_reg = "ds";
print_datasize(mode);
if (rm == 5) { /* no reg, 32-bit displacement */
dis_sprintf("[%s:0x%x]", mod_rm_seg_reg, displacement.displ32);
}
else {
dis_sprintf("%s:[%s]", mod_rm_seg_reg, general_32bit_reg_name[rm]);
}
}
void disassembler::resolve32_mod1(unsigned mode)
{
const char *mod_rm_seg_reg;
if (seg_override)
mod_rm_seg_reg = seg_override;
else
mod_rm_seg_reg = sreg_mod01_rm32[rm];
print_datasize(mode);
/* reg, 8-bit displacement, sign extend */
if (displacement.displ32)
&nbs |
2006-10-16 14:32
·´»ã±àʵÏÖÓÐÖúÓÚ¼ÓÉî¶ÔÖ¸ÁîµÄÀí½â£¬ÓÐʱ´ò¿ªÒ»¸öÎļþ£¬´ò¿ªÎļþ·¢ÏÖµÚÒ»¸ö×Ö½ÚÊÇ0XE9£¬Èç¹ûÊìµÄÖªµÀÊǸöJMPÖ¸ÁÄÇôÕâ¸öÎļþÓпÉÄÜÊǸöCOMÁË¡£·´»ã±àºóÒ²¿ÉÒÔÇø·ÖÄÇЩʱָÁÄÇЩÊÇÁ¢¼´Êý¡£ÀýÈç²éÕÒ©¶´´úÂ룬ÐèÒª±È½Ï´úÂë¶øÂÓ¹ýÊý¾Ý£¬¶¼ÐèÒª¶Ô·´»ã±àµÄÁ˽⡣ÏÂÃæÕâ¸ö³ÌÐòÊǸù¾ÝBOCHSÖеķ´»ã±àÎļþ¸ÄµÄ£¬¿É×ö²Î¿¼¡£
#include "stdio.h"
#include "windows.h"
#pragma warning(disable:4996)
// ³ÌÐò˵Ã÷£ºÕâ¸ö³ÌÐòÑÝʾÈçºÎ·´»ã±à edited by wangwei. 2006.10.16
// ³ÌÐòÔÀí£º¸ù¾ÝÖ¸Áî²é±í»ñȡָÁî¡£Ô´´úÂëÈ¡×ÔBOCHS£¬Îª·½±ãºÏΪһ¸öcpp
// ¹ØÓÚ·´»ã±àÍøÉϵÄÔ´´úÂëºÜ¶à£¬¿É×ۺϲο¼¡£
//***********************************************************************************************************/ disasm
// ---------------------------------------------------------------------------------- config.h
typedef unsigned char Bit8u;
typedef signed |
2006-10-16 14:26
Two-Byte Opcode Map (first byte is 0FH)
0 1 2 3 4 5 6 7 8 9 A B C D E F
+---------+---------+---------+---------+---------+---------+--------+--------+---------+---------+---------+---------+---------+---------+--------+--------+
| | | LAR | LSL | | | | | | | | | | | | |
0| Grp6 | Grp7 | | | | | CLTS | | | | | | | | | |
| | | Gw,Ew | Gv, |
2006-10-16 14:25
»ã±àÊÇ·ÖÎö¿ÉÖ´ÐÐÎļþµÄ»ù´¡£¬Ö÷ÒªÊÇ16λºÍ32λ8086»ã±àÖ¸Á»¹ÓÐCEϵĻã±àÖ¸Áram£©µÈ¡£
¶ÔCOM,EXE,PEÕâЩ¿ÉÖ´ÐÐÎļþ²¡¶¾µÄ·ÖÎöÒ»°ãʹÓÃIDA¹¤¾ß£¬Í¨¹ý»ã±à·ÖÎö²¡¶¾×öÁËЩʲô£¬ÌØÕ÷ÂëµÄÌí¼ÓÒ»°ãÒ²ÊǸù¾Ý»ã±à´úÂë»òÕßÌØÕ÷×Ö·ûµÈ¡£
»ã±àÓïÑÔÔÀí¿É²Î¿¼ÉòÃÀÃ÷µÄ¡¶IBM-PC »ã±àÓïÑÔ³ÌÐòÉè¼Æ¡·¡£ÏÂÃæÊÇÒ»Õűí¸ñ£¬Õâ¸ö±í¸ñ°üº¬ÁË»ù±¾Ö¸Á²¢ÇÒÕâ¸ö±í¸ñµÄ»®·ÖÓÐѰַ·½Ê½£¬ÀýÈçEb,GbµÈ£¬ºÜÓвο¼¼ÛÖµ¡£Ö®ºóÈç¹ûѧϰBOCHSÔ´´úÂëÖеÄÖ¸ÁîÐéÄâÊǺÜÓаïÖúµÄ£¬ÀýÈçADD AL,9Ö¸ÁîÊÇÁ¢¼´Ñ°Ö·£¬Æä΢ָÁî´úÂëÈçÏ£º
void BX_CPU_C::ADD_ALIb(bxInstruction_c *i)
{
Bit8u op1, op2, |
|
| |