+/* Filename: vmware-detect.c
+* Purpose: Detect if running inside vmware
+* Authors: grml-team (grml.org), (c) Michael Gebetsroither <gebi@grml.org>
+* Bug-Reports: see http://grml.org/bugs/
+* License: This file is licensed under the GPL v2.
+*******************************************************************************/
+// return 0 if running inside vmware, 1 otherwise
+
+#include "string.h"
+#include "unistd.h"
+#include "stdio.h"
+#include "stdlib.h"
+#include "signal.h"
+
+#define WRITE(x) write(1, x, strlen(x))
+#define DWRITE(x) do{ \
+ if(debug) { \
+ WRITE(x); \
+ } \
+} while(0);
+#define FALSE 0
+#define TRUE !FALSE
+
+/* doc:
+ * vmware IO backdoor: http://chitchat.at.infoseek.co.jp/vmware/backdoor.html
+ * http://www.honeynet.org/papers/bots/botnet-code.html
+ * http://www.codegurus.be/codegurus/Programming/virtualpc&vmware_en.htm
+ */
+
+// from libowfat {{{
+static inline char tohex(char c) {
+ return c>=10?c-10+'a':c+'0';
+}
+
+unsigned int fmt_xlong(char *dest,unsigned long i) {
+ register unsigned long len,tmp;
+ /* first count the number of bytes needed */
+ for (len=1, tmp=i; tmp>15; ++len) tmp>>=4;
+ if (dest)
+ for (tmp=i, dest+=len; ; ) {
+ *--dest = tohex(tmp&15);
+ if (!(tmp>>=4)) break;
+ }
+ return len;
+}
+// }}}
+
+void printIdtr(const unsigned char* idtr, unsigned size)