⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 29a-7.012

📁 从29A上收集的病毒源码
💻 012
字号:

			-----------------------------------------
			 (X) uNdErX 2003 - underx@antisocial.com
			-----------------------------------------

		        ------------------------------------------
	        	ABOUT THE MICRO LENGTH-DISASSEMBLER ENGINE
        		------------------------------------------
	----------
	 OVERVIEW
	----------

		A  length-disassembler engine is a piece of code that allows u to know
	the length of any x86 instruction. The mlde32 engine supports the ordinary 386
	opcode set, plus the extensions: fpu, mmx, cmov, sse, sse2 etc...

	It's usage is very simple here's the prototype:

	     int __cdecl mlde32(void *codeptr);

	     where:
	     codeptr -> is a pointer to the opcode that u want to know the size.

		if  you have any  problem  using  the engine,  just take look in  some
        examples at the /examples (nothing more obvious).  That's  a very  simple  and
        powerful engine,and does not require too much system resources either,just 160
	bytes of stack space is needed. This engine is only code, and no fixed offsets
	were used so it can be permutaded/perverted at your own will.

	Obs: This engine is NOT a smaller version of Z0MBiE's LDE engine, Z0MBiE's lde
	is brilliant mine one is just awesome. :-)

        -------------------
         THE TABLE PROBLEM
        -------------------

        Everything started when i  wanted to use z0mbie's lde in some stuff that i was
        writing but i couldn't allocate a 2048 byte buffer, so i  decided to write one
        engine that doesn't needs a big table. I knew that it wouldn't be an easy task
        cuz the big  problem while writing this kind of engine, is that u need a table
        to match the opcode type from its  value, so i had created 13 types of opcodes
        and tried to  represent them with the smallest pattern i could , so i had used
        4 bits for each field of the opcode type table.
        We need 256 values to mark  the normal opcode  types and  plus 256 to mark the
        extended  ones (0Fh), so  my table got  256 bytes. That size is still big so i
        had  compressed the repeated  bit patterns, then the table was shrinked to 160
        bytes.  If i  had to  decompress that , i will surely  spend more bytes in the
        decompression  routine than  directly  looking throught the table and that was
        what i did, no decompression.

	I will be happy to receive feedbacks not only about bugs, but also concerning
        your opinions about it, or new ideas u may have, u can mail me anytime u want.

        that's all folks!
					-------//-------


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -