본문 바로가기

Computer Security/Other

gdb automatic attach python script

  1. import os
  2. import sys
  3.  
  4. if os.getuid() != 0:
  5.         print "[-] You are not root"
  6.         sys.exit(-1)
  7.  
  8. if len(sys.argv) < 2:
  9.         print "python attach.py [binary name] [script]"
  10.  
  11. output = os.popen('ps aux | grep '+sys.argv[1]).read()
  12.  
  13. outputs = output.split('\n')
  14. lastline = ""
  15. i=len(outputs)-2
  16. while i>= 0:
  17.         try:
  18.                 pid = outputs[i].split(None)[1]
  19.         except:
  20.                 i -= 1
  21.                 continue
  22.         if int(pid) < os.getpid():
  23.                 lastline = outputs[i]
  24.                 break
  25.         i -= 1
  26.  
  27. pid = lastline.split(None)[1]
  28.  
  29. print "[*] Attach to "' '.join(lastline.split(None)[-2:]) +" ("+pid+")"
  30.  
  31. if len(sys.argv) == 3:
  32.         print "gdb -q --pid="+pid+" -x "+sys.argv[2]
  33.         os.system("gdb -q --pid="+pid+" -x "+sys.argv[2])
  34. else:
  35.         print "gdb -q --pid="+pid
  36.         os.system("gdb -q --pid="+pid)


http://pastebin.com/GbBk2ADG


fork 프로그램 디버깅할때 ps로 pid 찾아서 attach 하는게 귀찮아서 만듬.

python attach.py 프로그램명

으로 실행하면, 프로그램명중 pid가 가장 큰걸 자동으로 attach

(프로그램명은 꼭 풀로 안써도 됌, grep으로 잡기때문에)

'Computer Security > Other' 카테고리의 다른 글

afl-fuzz for javascript  (1) 2015.02.13