Thank you very much! 



------------------ ???????? ------------------
??????: "Xuzhijian"<[email protected]>; 
????????: 2017??4??13??(??????) ????9:15
??????: "????"<[email protected]>; "klee-dev"<[email protected]>; 
????: ????: [klee-dev] Sorry, may i ask a question?



 
If the character is visible, then klee will show it directly, otherwise, it 
will show it as a hexadecimal number, so I think ??}_9~\x00\x00\x00\x00??,  
means ??\x7d\x5f\x39\x7e\x00\x00\x00\x00?? in hexadecimal
 
 
  
??????: [email protected] 
[mailto:[email protected]] ???? ????
 ????????: 2017??4??12?? 10:22
 ??????: klee-dev
 ????: [klee-dev] Sorry, may i ask a question?
 
 
 
  
Hi,all
 
   
I am very sorry to disturb you. Really thanks for the work Of Prof. Cristian 
Cadar. KLEE is one strong tool for testing softwares and symbolic execution is 
very promising. When i use klee to run  the follow program, which is a similar 
example about the Vulnerability in the dissertation of Prof. Cristian Cadar for 
the degree of doctor of philosophy.
 
 
  
the code of vulnerability existing in the function safe_addptr in the 32-bit 
version of HISTAR kernel :
 
   
uintptr_t safe_addptr(int *of , uint64_t a, uint64_t b){
 
  
uintptr_t r=a+b;
 
  
if(r < a )
 
  
return r;
 
  
}
 
 
  
i rewrite a similar program as bellow.?6?7?6?7
 
  
?6?7#include<stdio.h> #include<malloc.h> #include <klee/klee.h>  int main() { 
unsigned long long int a; unsigned long long int b; unsigned int c; 
klee_make_symbolic(&a,sizeof(a),"a"); klee_make_symbolic(&b,sizeof(b),"b"); 
c=a+b; if(c<a) { printf("yes \n"); } else if(c<b) { printf("xiaojie \n"); } 
else printf("no \n"); return  0; }
 
  
 
 
  
?6?7?6?7    when using klee to run it. there are three paths.?6?7
 
  
    My question is about the generated test case which i cannot understand.
 
  
 
 
   
root@sucof-virtual-machine:~/????/xiaojiework/klee_work# ktest-tool 
./klee-last/test000002.ktest
 
  
ktest file : './klee-last/test000002.ktest'
 
  
args       : ['overflowdetect_klee.bc']
 
  
num objects: 2
 
  
object    0: name: 'a'
 
  
object    0: size: 8
 
  
object    0: data: '\x01\x00FA\x00\x00\x00\x80'
 
  
object    1: name: 'b'
 
  
object    1: size: 8
 
  
object    1: data: '}_9~\x00\x00\x00\x00'
 
  
 
 
 
  
 ?6?7  ?6?7 I  understand "\x" is to ?6?7?6?7express hexadecimal number. then 
what does the "}_9~" means in the red circle in the above picture ?
 
  
?6?7    ?6?7I would  very much appreciate your help.?6?7
_______________________________________________
klee-dev mailing list
[email protected]
https://mailman.ic.ac.uk/mailman/listinfo/klee-dev

Reply via email to