Dear list,

I am writing to ask how to use DynInst to recognize *function entry points
(memory addresses) in stripped binaries*.


I successfully installed the 32-bit DynInst 9.10, and I use a DynInst
script to iterate all the functions with the following commands to *dump
all the function entry point addresses from stripped binaries*.

                     .......
                     vector<BPatch_module *> * modules =
appImage->getModules();
                     ......
                     vector<BPatch_function *> * funcs =
(*module_iter)->getProcedures();
                     vector<BPatch_function *>::iterator func_iter;
                     for(func_iter = funcs->begin(); func_iter !=
funcs->end(); ++func_iter) {
                          char functionName[1024];
                          (*func_iter)->getName(functionName, 1024);
                          cout << "-- Function : " << functionName << " --"
<< endl;
                     ......

I extract the function entry point addresses from the function names.


I test some LLVM compiler CoreUtil binaries with O2 optimization level. And
the precision/recall rate is general very good!  *Precision: 0.99;  Recall:
0.91*

According to this paper
<ftp://ftp.cs.wisc.edu/paradyn/papers/Williams15Dyninst.pdf>, Section 6.2,
on average DynInst can have over 0.97 precision, and 0.93 recall on 32-bit
ELF binaries. It is very consistent with my test! But still, I am not sure
whether I did everything correct.

So here are my questions:

1. It seems that by leveraging machine learning method to recognize
functions, DynInst needs a training process before recognition, but I
didn't do any training  (although the results are pretty good), is there
anything in particular I have to do before using DynInst?

2. If there is a "pre-trained" model installed in DynInst 9.10 already,
what kind of binaries does this model include?  For example, can I use it
to test 32-bit ELF binaries compiled from LLVM with O3? or ICC with O3?

Am I clear enough? I appreciate if anyone can give me some help!

Sincerely,
Shuai
_______________________________________________
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api

Reply via email to