diff --git a/libIRDB/include/core/scoop.hpp b/libIRDB/include/core/scoop.hpp index 96194283d187bfbb398a04fe7e3eb51892328ba7..d6f6b0187a4e8e979a1cfa6a6d09f2bc09d55855 100644 --- a/libIRDB/include/core/scoop.hpp +++ b/libIRDB/include/core/scoop.hpp @@ -47,6 +47,7 @@ class DataScoop_t : public BaseObj_t std::string GetName() const { return name; } std::string GetContents() const { return contents; } + std::string &GetContents() { return contents; } libIRDB::AddressID_t* GetStart() const { return start; } libIRDB::AddressID_t* GetEnd() const { return end; } libIRDB::Type_t* GetType() const { return type; } @@ -54,6 +55,7 @@ class DataScoop_t : public BaseObj_t bool isReadable() const { return (permissions & permissions_r) == permissions_r; } bool isWriteable() const { return (permissions & permissions_w) == permissions_w; }; bool isExecuteable() const { return (permissions & permissions_x) == permissions_x; }; + int getRawPerms() const { return permissions; } void SetName(const std::string &n) { name=n; } void SetContents(const std::string &n) { contents=n; } diff --git a/libIRDB/test/fill_in_cfg.cpp b/libIRDB/test/fill_in_cfg.cpp index 1d5774b2898b38b811c3b8cf9b28366403a75a3b..897d43de09a20a9a198879227f0ad70e174cb9a8 100644 --- a/libIRDB/test/fill_in_cfg.cpp +++ b/libIRDB/test/fill_in_cfg.cpp @@ -445,22 +445,26 @@ void fill_in_scoops(FileIR_t *firp) fout<<"Found that section "<<elfiop->sections[secndx]->get_name()<<" is both writeable and executable. Program is inherently unsafe!"<<endl; } +#if 0 /* executable sections handled by other bits. */ if(elfiop->sections[secndx]->isExecutable()) { cout<<"Skipping scoop for section (executable) "<<elfiop->sections[secndx]->get_name()<<endl; continue; } + // we decided to skip BSS for a bad reason. trying again. if(elfiop->sections[secndx]->isBSS()) { cout<<"Skipping bss section: "<<elfiop->sections[secndx]->get_name()<<endl; continue; } + // we decided to skip tls for a bad reason. trying again. if(elfiop->sections[secndx]->isThreadLocal()) { cout<<"Skipping tls section (executable) "<<elfiop->sections[secndx]->get_name()<<endl; continue; } +#endif /* name */ string name=elfiop->sections[secndx]->get_name(); diff --git a/tools/hook_dynamic_call/SConscript b/tools/hook_dynamic_call/SConscript index 037ca70e0adc6d4f61cdaed72e25688ac5d0c8b4..488072d41a527c069c6d2e1a6bb677da3fb06c77 100644 --- a/tools/hook_dynamic_call/SConscript +++ b/tools/hook_dynamic_call/SConscript @@ -24,5 +24,5 @@ myenv=myenv.Clone(CPPPATH=Split(cpppath)) myenv.Append(CPPFLAGS=CPPFLAGS) pgm=myenv.Program(target="hook_dynamic_calls.exe", source=Split("hook_dynamic_calls.cpp hook_dynamic_calls_driver.cpp"), LIBPATH=LIBPATH, LIBS=LIBS) -install=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm) +install=myenv.Install("$SECURITY_TRANSFORMS_HOME/plugins_install/", pgm) Default(install)