Date: | Wed, 06 Jan 2016 11:43:12 -0500 |
---|---|
From: | Shuai Wang <wangshuai901@xxxxxxxxx> |
Subject: | [DynInst_API:] Function Entry Point Recognition in Stripped Binaries |
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, 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 |
[← Prev in Thread] | Current Thread | [Next in Thread→] |
---|---|---|
|
Previous by Date: | [DynInst_API:] Use DynInst to replace a branch with a NOP?, Jonas Wagner |
---|---|
Next by Date: | Re: [DynInst_API:] Use DynInst to replace a branch with a NOP?, Bill Williams |
Previous by Thread: | [DynInst_API:] [dyninst] VEX branch will be deleted post 9.2.X release, John Detter |
Next by Thread: | Re: [DynInst_API:] Function Entry Point Recognition in Stripped Binaries, Bill Williams |
Indexes: | [Date] [Thread] |