diff --git a/Knight.py b/Knight.py index f8b5049..6589d7a 100755 --- a/Knight.py +++ b/Knight.py @@ -41,12 +41,9 @@ class StringGenerator(object): def STOP(self): return UI.returnPage() - @cherrypy.expose - def PAUSE(self): - return UI.returnPage() - @cherrypy.expose def RESET(self): + UI.Reset_lilith() return UI.returnPage() @cherrypy.expose @@ -55,6 +52,18 @@ class StringGenerator(object): UI.Watchpoints.add(int(Inst, 16)) return UI.returnPage() + @cherrypy.expose + def PAGEDOWN(self): + UI.Current_Page = UI.Current_Page + 4096 + return UI.returnPage() + + @cherrypy.expose + def PAGEUP(self): + UI.Current_Page = UI.Current_Page - 4096 + if 0 > UI.Current_Page: + UI.Current_Page = 0 + return UI.returnPage() + if __name__ == '__main__': conf = { '/': { diff --git a/User_Interface.py b/User_Interface.py index a2269c4..03d736a 100644 --- a/User_Interface.py +++ b/User_Interface.py @@ -5,10 +5,15 @@ import re subprocess.call("./bin/dis foo | sponge z_disassembled", shell=True) vm = ctypes.CDLL('./libvm.so') -vm.initialize_lilith() -Current_IP = 0 -Watchpoints = {0} -vm.load_lilith(ctypes.create_string_buffer("foo".encode('ascii'))) + +def Reset_lilith(): + vm.initialize_lilith() + global Current_IP + Current_IP = 0 + global Watchpoints + Watchpoints = {0} + vm.load_lilith(ctypes.create_string_buffer("foo".encode('ascii'))) + def Step_lilith(): global Current_IP @@ -17,7 +22,7 @@ def Step_lilith(): return def returnPage(): - return get_header() + (vm.get_memory(0)).decode('utf-8') + get_spacer1() + get_registers(0) + get_registers(8) + get_spacer2() + get_disassembled() + get_footer() + return get_header() + (vm.get_memory(Current_Page)).decode('utf-8') + get_spacer1() + get_registers(0) + get_registers(8) + get_spacer2() + get_disassembled() + get_footer() vm.get_memory.argtype = ctypes.c_uint vm.get_memory.restype = ctypes.c_char_p @@ -58,9 +63,10 @@ def get_header():
- - + + +
@@ -114,7 +120,7 @@ def get_registers(index): """ for i in range(0,8): - temp = temp + """R""" + str(index + i) + "" + formatRegister(vm.get_register(index + i)) + "\n" + temp = temp + """R""" + str(index + i) + "" + formatRegister(vm.get_register(index + i)) + "\n" return temp + """ """ @@ -153,3 +159,8 @@ def get_footer(): """ + +Current_IP = 0 +Current_Page = 0 +Watchpoints = {0} +Reset_lilith()