Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. #!/usr/bin/python
  2.  
  3. import sys
  4. import pwn
  5. import copy
  6. import os
  7.  
  8. # brute force best force wins again
  9. # fuck trying to reverse this shit
  10.  
  11. pwn.context.log_level = 'error'
  12.  
  13. f = open("testrand","r")
  14. d = f.read()
  15. f.close()
  16. d_r = d.rstrip()
  17.  
  18. orig_str = "AAAAAAAA"
  19. lock = [0,0,0,0,0,0,0,0]
  20.  
  21. def bf_try(change_posn,change_char):
  22. global orig_str
  23. global lock
  24. data_to_send = bytearray(copy.copy(orig_str))
  25. data_to_send[change_posn] = change_char
  26. for lc in range(0,8):
  27. if lock[lc] != 0:
  28. data_to_send[lc] = lock[lc]
  29. i = 0
  30. p = pwn.process(["./qemu-mips","bender_patched"])
  31. try:
  32. p.recvuntil(d_r)
  33. # print "okay, received %s" % d.rstrip()
  34. p.sendline(data_to_send)
  35. p.wait_for_close()
  36. ret = p.poll(block=True)
  37. except:
  38. ret = 139
  39. del data_to_send
  40. return ret
  41.  
  42. chars = "abcdefghijklmnopqrstuvwxyxABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
  43.  
  44. def bf_harness(current_check):
  45. global lock
  46. for i in range(0,8):
  47. if lock[i] != 0:
  48. print " [<] attempting check %d, char %d locked, continuing" % (current_check,i)
  49. continue
  50. for c in chars:
  51. if i == 7:
  52. print "lock 7 (status %s) attempting mutation %d:%c" % (lock,i,c)
  53. ret = bf_try(i,c)
  54. crashcount = 0
  55. while ret == 139:
  56. crashcount += 1
  57. if crashcount > 2:
  58. print " [!] too many crashes i = %d (return = %d), breaking" % (i,ret)
  59. break
  60. print " [!] crashed while iterating i = %d (return = %d), retrying" % (i,ret)
  61. os.system("rm *.core")
  62. ret = bf_try(i,c)
  63. if ret == 139:
  64. print " [!] noping out"
  65. return
  66. if ret != current_check:
  67. print " [>] locking %d at %c" % (i,c)
  68. lock[i] = c
  69. return
  70.  
  71. if __name__ == "__main__":
  72. for i in range(0,8):
  73. bf_harness(i)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement