Guest User

Untitled

a guest
Jun 17th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.05 KB | None | 0 0
  1. 160
  2. 0000 0a push 0
  3. 0001 05 69 BUF[ $0x69 ] = pop
  4. 0003 03 69 push BUF[ $0x69 ]
  5. 0005 06 02 push $0x2 ; start at offset 2 (first char of input)
  6. 0007 08 pop A; pop B; push A + B
  7. 0008 04 push *PEEK
  8. 0009 0b pop INDEX; push BUF[INDEX] ; push BUF[2+counter]
  9. 0010 04 push *PEEK
  10. 0011 0a push 0
  11. 0012 09 pop A; pop B; push A ^ B ; if character ^ 0 == 0 :: goto 13+2+14=29
  12. 0013 02 0e branch + $14 if *PEEK=0
  13.  
  14. 0015 06 aa push $0xaa ; INDEX = 2+counter
  15. 0017 09 pop A; pop B; push A ^ B ; VALUE = 0xaa ^ buf[2+counter] ;-----> sploit here??
  16. 0018 0c pop VALUE; pop INDEX; BUF[INDEX] = VALUE
  17.  
  18. 0019 03 69 push BUF[ $0x69 ]
  19. 0021 06 01 push $0x1
  20. 0023 08 pop A; pop B; push A + B
  21. 0024 05 69 BUF[ $0x69 ] = pop ;;;;;; LEN = len + 1
  22. 0026 0a push 0
  23. 0027 02 e6 branch + $-26 if *PEEK=0
  24.  
  25.  
  26. 0029 03 69 push BUF[ $0x69 ]
  27. 0031 06 09 push $0x9
  28. 0033 06 09 push $0x9
  29. 0035 08 pop A; pop B; push A + B
  30. 0036 09 pop A; pop B; push A ^ B
  31. 0037 02 02 branch + $2 if *PEEK=0 ;;; LEN of argv[1] must be 9+9 = 18 (0x12)
  32. 0039 0a push 0
  33. 0040 01 WIN CONDITION if *PEEK != 0
  34. ;;;; ~roughly 18 characters here. xor ^ 0xaa = win :-)
  35. 0041 06 cf push $0xcf
  36. 0043 06 c7 push $0xc7
  37. 0045 06 df push $0xdf
  38. 0047 06 c6 push $0xc6
  39. 0049 06 cb push $0xcb
  40. 0051 06 de push $0xde
  41. 0053 06 c5 push $0xc5
  42. 0055 06 d8 push $0xd8
  43. 0057 06 d9 push $0xd9
  44. 0059 06 cb push $0xcb
  45. 0061 06 d8 push $0xd8
  46. 0063 06 cf push $0xcf
  47. 0065 06 64 push $0x64
  48. 0067 06 64 push $0x64
  49. 0069 08 pop A; pop B; push A + B ;; compress into c8
  50. 0070 06 cb push $0xcb
  51. 0072 06 ce push $0xce
  52. 0074 06 cb push $0xcb
  53. 0076 06 d9 push $0xd9
  54. 0078 06 d9 push $0xd9
  55. 0080 0a push 0
  56. 0081 05 69 BUF[ $0x69 ] = pop ; counter = 0
  57.  
  58. ;;; this looks like a crypto loop right here
  59. 0083 05 6a BUF[ $0x6a ] = pop ; BUF[6A] = 0xd9
  60. 0085 03 69 push BUF[ $0x69 ]
  61. 0087 06 32 push $0x32
  62. 0089 08 pop A; pop B; push A + B ; INDEX = 50+counter
  63. 0090 03 6a push BUF[ $0x6a ] ; VALUE = BUF[6A]
  64. 0092 0c pop VALUE; pop INDEX; BUF[INDEX] = VALUE ;;; BUF[ 50+counter ] = BUF[6A]
  65. ---
  66. 0093 03 69 push BUF[ $0x69 ]
  67. 0095 06 ff push $0xff
  68. 0097 08 pop A; pop B; push A + B ; counter = counter - 1
  69. 0098 04 push *PEEK ; duplicate counter
  70. 0099 05 69 BUF[ $0x69 ] = pop
  71. ---
  72. 0101 06 ee push $0xee
  73. 0103 09 pop A; pop B; push A ^ B ; 0xee ^ counter
  74. 0104 02 03 branch + $3 if *PEEK=0
  75.  
  76. 0106 0a push 0
  77. 0107 02 e6 branch + $-26 if *PEEK=0
  78. ;;;;; done with loop
  79.  
  80. 0109 0a push 0
  81. 0110 05 69 BUF[ $0x69 ] = pop ; counter = 0
  82.  
  83.  
  84.  
  85. 0112 03 69 push BUF[ $0x69 ]
  86. 0114 06 02 push $0x2
  87. 0116 08 pop A; pop B; push A + B ;
  88. 0117 0b pop INDEX; push BUF[INDEX] ; buf[ counter + 2]
  89. 0118 03 69 push BUF[ $0x69 ]
  90. 0120 06 21 push $0x21
  91. 0122 08 pop A; pop B; push A + B ;
  92. 0123 0b pop INDEX; push BUF[INDEX] ; buf[counter + 0x21]
  93. 0124 09 pop A; pop B; push A ^ B
  94.  
  95. 0125 02 02 branch + $2 if *PEEK=0 ; condition -> buf[counter+0x2] must equal buf[counter+0x21]
  96.  
  97. 0127 0a push 0
  98. 0128 01 WIN CONDITION if *PEEK != 0
  99.  
  100.  
  101. 0129 03 69 push BUF[ $0x69 ]
  102. 0131 07 push 1
  103. 0132 08 pop A; pop B; push A + B ; counter = counter + 1
  104. 0133 04 push *PEEK
  105. 0134 05 69 BUF[ $0x69 ] = pop
  106. 0136 06 12 push $0x12
  107. 0138 09 pop A; pop B; push A ^ B ;
  108. 0139 02 03 branch + $3 if *PEEK=0 ; if counter gets to 18 --- win
  109.  
  110. 0141 0a push 0
  111. 0142 02 e0 branch + $-32 if *PEEK=0
  112.  
  113. 0144 07 push 1
  114. 0145 01 WIN CONDITION if *PEEK != 0
  115. 0146 00 UNDEFINED
  116. 0147 00 UNDEFINED
  117. 0148 00 UNDEFINED
  118. 0149 9a ???
  119. 0150 04 push *PEEK
  120. 0151 08 pop A; pop B; push A + B
  121. 0152 00 UNDEFINED
  122. 0153 00 UNDEFINED
  123. 0154 00 UNDEFINED
  124. 0155 00 UNDEFINED
  125. 0156 00 UNDEFINED
  126. 0157 00 UNDEFINED
  127. 0158 00 UNDEFINED
  128. 0159 00 UNDEFINED
Add Comment
Please, Sign In to add comment