diff --git a/ida_script.py b/ida_script.py
new file mode 100644
index 00000000..4963701e
--- /dev/null
+++ b/ida_script.py
@@ -0,0 +1,34 @@
+import xmlrpclib
+import threading
+from SimpleXMLRPCServer import SimpleXMLRPCServer
+import idc, idautils, idaapi
+
+xmlrpclib.Marshaller.dispatch[type(0L)] = lambda _, v, w: w("%d" % v)
+xmlrpclib.Marshaller.dispatch[type(0)] = lambda _, v, w: w("%d" % v)
+
+port = 8888
+
+orig_LineA = idc.LineA
+
+def LineA(*a,**kw):
+ v = orig_LineA(*a,**kw)
+ if v and v.startswith('\x01\x04; '):
+ v = v[4:]
+ return v
+
+idc.LineA = LineA
+
+def register_module(module):
+ for name, function in module.__dict__.items():
+ if hasattr(function, '__call__'):
+ server.register_function(function, name)
+
+server = SimpleXMLRPCServer(('127.0.0.1', port), logRequests=True, allow_none=True)
+register_module(idc)
+register_module(idautils)
+register_module(idaapi)
+server.register_introspection_functions()
+
+thread = threading.Thread(target=server.serve_forever)
+thread.daemon = True
+thread.start()