Method: Rex::Post::Meterpreter::Extensions::Stdapi::UI#keyscan_extract
- Defined in:
- lib/rex/post/meterpreter/extensions/stdapi/ui.rb
#keyscan_extract(buffer_data) ⇒ Object
Extract the keystroke from the buffer data
225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 |
# File 'lib/rex/post/meterpreter/extensions/stdapi/ui.rb', line 225 def keyscan_extract(buffer_data) outp = "" buffer_data.unpack("n*").each do |inp| fl = (inp & 0xff00) >> 8 vk = (inp & 0xff) kc = VirtualKeyCodes[vk] f_shift = fl & (1<<1) f_ctrl = fl & (1<<2) f_alt = fl & (1<<3) if(kc) name = ((f_shift != 0 and kc.length > 1) ? kc[1] : kc[0]) case name when /^.$/ outp << name when /shift|click/i when 'Space' outp << " " else outp << " <#{name}> " end else outp << " <0x%.2x> " % vk end end return outp end |