Ayuto

Hooking server input

Dec 23rd, 2013
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.75 KB | None | 0 0
  1. import binutils
  2.  
  3. from binutils import Convention
  4.  
  5.  
  6. engine = binutils.find_binary('bin/engine')
  7. Cmd_ExecuteCommand = engine.find_signature('\x55\x8B\xEC\x53\x8B\x5D\x08\x56\x8B\x33').make_function(Convention.CDECL, 'pii)v')
  8.  
  9. def hook(args):
  10.     print
  11.     print 'm_nArgc', args[0].get_int()
  12.  
  13.     argvsize = args[0].get_int(4)
  14.     print 'm_nArgv0Size', argvsize
  15.     print 'm_pArgSBuffer:', args[0].get_string(8, False)
  16.     print 'm_pArgSBuffer:', args[0].get_string(520, False)
  17.     for x in xrange(argvsize):
  18.         print x, 'm_ppArgv', getArg(args[0].get_ptr(1032), x)
  19.     print
  20.  
  21. def getArg(ptr, index):
  22.     return ptr.get_string(index*4, False)
  23.  
  24. Cmd_ExecuteCommand.add_pre_hook(hook)
  25.  
  26. def unload():
  27.     Cmd_ExecuteCommand.remove_pre_hook(hook)
Advertisement
Add Comment
Please, Sign In to add comment