[panda-users] Issues with tainting

Federico "fox" Scrinzi fox91 at anche.no
Mon Mar 2 04:50:58 EST 2015


Hello,
I am trying to use the taint plugin of PANDA to find which part of a 
program is processing and encrypting my input.
I did some tests using a DES [1] and a SHA1 [2] implementation from 
Github on a Debian VM. I basically recorded the encryption or the 
hashing of two strings and then used the tstringsearch plugin to taint 
those strings and locate the instructions that processed it.

I used the following command:

~/git/panda/qemu/x86_64-softmmu/qemu-system-x86_64 -hda 
debian_squeeze_amd64_standard_panda.qcow2 -m 1024 -net nic,model=e1000 
-net user -redir tcp:2222::22 -replay <REPLAYNAME> -display none -panda 
callstack_instr -panda stringsearch -panda taint:tainted_instructions=1 
-panda tstringsearch

I tried both with taint and taint2 but the result does not change: in 
all my tests I get string matches for my input string but no messages 
about tainting or tainted instructions. Also no output of tainted 
instructions. Because of this issue 
https://github.com/moyix/panda/issues/49 I also tried older version of 
PANDA as well as the current one. I also recorded multiple executions 
but the result is the same.

If you would like to reproduce my experiment I uploaded one of my traces 
about DES encryption on rrshare (http://www.rrshare.org/detail/48/). I 
would expect that the tstringsearch plugin finds the instructions that 
constitute the encryption process when I feed the plaintext or the key 
to it.


Am I missing something? Any help is appreciated.
Thank you very much!


Cheers,
Federico


[1] https://github.com/tarequeh/DES
[2] https://github.com/B-Con/crypto-algorithms


More information about the panda-users mailing list