Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2015, 17:09   #41
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

Нет, не могу скачать нужные коды. Даже поставил себе TortoiseSVN и справиться то-есть закачать код не могу. TortoiseSVN создал мне просто папку с двумя пустыми папками в ней, с названиями кодов.

А покажите пожалуста действительно, хороший пример просто кода, не декомпилированого а просто действитнльно хорошего красивого кода!
Dimka-novitsek вне форума Ответить с цитированием
Старый 25.02.2015, 20:49   #42
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

http://sourceforge.net/code-snapshot...2522-trunk.zip
phomm вне форума Ответить с цитированием
Старый 06.03.2015, 15:05   #43
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

Доброго дня! Вышеуказаная ссылка ссылается на error 404.

При компиляции проэкта Бумеранг возникли ошибки.

Я в общем, даже и не представляю, чем вызываится такая наистраная ошибка и куда смотреть в поисках ошибки.

Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ "class SymbolMatcher * __cdecl SymbolMatcherFactory_getInstanceFor (class Prog *,char const *,char const *)" (?SymbolMatcherFactory_getInstanceF or@@YAPAVSymbolMatcher@@PAVProg@@PB D1@Z) в функции "public: void __thiscall Prog::MatchSignatures(char const *,char const *)" (?MatchSignatures@Prog@@QAEXPBD0@Z) D:\Skladannja3\libid\boomerang\win3 2make\console\prog.obj console

Откуда могут корни рости
Dimka-novitsek вне форума Ответить с цитированием
Старый 06.03.2015, 15:13   #44
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

"class SymbolMatcher " -Поиск не дал результатов.



"SymbolMatcherFactory_getInstanceFo r"

1.) prog.cpp
2.) libidloader.cpp
3.) libidloader.h

Последний раз редактировалось Dimka-novitsek; 06.03.2015 в 15:17.
Dimka-novitsek вне форума Ответить с цитированием
Старый 06.03.2015, 15:23   #45
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

1.)
Код:
void Prog::MatchSignatures(const char * sig_file, const char * hint)
/**
	Search for library signatures from sig_file and match them
	'hint' is used to force usage of specified signature matching
	module
*/
{
    SymbolMatcher *sym_matcher;

    sym_matcher = SymbolMatcherFactory_getInstanceFor(this, sig_file, hint);

    if(sym_matcher)
        sym_matcher->MatchAll();
    else
        std::cerr << "No default symbol matcher module for " << sig_file << std::endl;

}
Содержит в строках 1911-1928.
Dimka-novitsek вне форума Ответить с цитированием
Старый 06.03.2015, 15:25   #46
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

2.) libidloader.cpp
Код:

#ifndef _WIN32
#include <dlfcn.h>
#else
#include <windows.h>
#endif

#include "SymbolMatcher.h"
#include "config.h"				// For UNDERSCORE_NEEDED etc

#include <iostream>


#define FACTORY_PROC "getInstanceFor"

SymbolMatcher * SymbolMatcherFactory_getInstanceFor(Prog *prog, const char *sSymbolContainer, const char *hint)
{
    std::string libName = "libid";
    SymbolMatcher *res;


// Load the specific loader library
#ifndef _WIN32		// Cygwin, Unix/Linux
    libName = std::string("lib/lib") + libName;
#ifdef	__CYGWIN__
    libName += ".dll";		// Cygwin wants .dll, but is otherwise like Unix
#else
#if HOST_OSX
    libName += ".dylib";
#else
    libName += ".so";
#endif
#endif
    static void* dlHandle = dlopen(libName.c_str(), RTLD_LAZY);
    if (dlHandle == NULL)
        {
            fprintf( stderr, "Could not open dynamic loader library %s\n", libName.c_str());
            fprintf( stderr, "%s\n", dlerror());
            //fclose(f);
            return NULL;
        }
    // Use the handle to find the "construct" function
#if UNDERSCORE_NEEDED
#define UNDERSCORE "_"
#else
#define UNDERSCORE
#endif
    SYMMATCH_FACTORY pFcn = (SYMMATCH_FACTORY) dlsym(dlHandle, UNDERSCORE FACTORY_PROC);
#else						// Else MSVC, MinGW
    libName += ".dll";		// Example: ElfBinaryFile.dll (same dir as boomerang.exe)
#ifdef __MINGW32__
    libName = "lib/lib" + libName;
#endif

    static HMODULE hModule = LoadLibrary(libName.c_str());
    if(hModule == NULL)
        {
            int err = GetLastError();
            fprintf( stderr, "Could not open dynamic loader library %s (error #%d)\n", libName.c_str(), err);
            return NULL;
        }
    // Use the handle to find the "construct" function
    SYMMATCH_FACTORY pFcn = (SYMMATCH_FACTORY) GetProcAddress((HINSTANCE)hModule, FACTORY_PROC);
#endif

    if (pFcn == NULL)
        {
            fprintf( stderr, "Loader library %s does not have a "FACTORY_PROC" function\n", libName.c_str());
#ifndef _WIN32
            fprintf( stderr, "dlerror returns %s\n", dlerror());
#endif
            return NULL;
        }
    // Call the construct function
    res = (*pFcn)(prog, sSymbolContainer, hint);
    return res;
}
Это весь код libidloader.cpp
, полностю.



и при этом этот libidloader.cpp и prog.cpp хотя находятся в одном проэкте вообще никак не связаны!!
то-есть, они не вызываются один из другого в коде или еще как!

Последний раз редактировалось Dimka-novitsek; 06.03.2015 в 15:29.
Dimka-novitsek вне форума Ответить с цитированием
Старый 06.03.2015, 15:31   #47
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

3.) libidloader.h

Код:


SymbolMatcher * SymbolMatcherFactory_getInstanceFor(Prog *prog, const char *sSymbolContainer, const char *hint);
Это весь код этого файла полностью.

libidloader.h вызываится из файла prog.cpp
вот таким вот образом
Код:
#include <assert.h>
#include <fstream>
#include <sstream>
#include <vector>
#include <math.h>
#ifdef WIN32
#include <direct.h>					// For Windows mkdir()
#endif
 
#include "type.h"
#include "cluster.h"
#include "types.h"
#include "statement.h"
#include "exp.h"
#include "cfg.h"
#include "proc.h"
#include "util.h"					// For lockFileWrite etc
#include "register.h"
#include "rtl.h"
#include "BinaryFile.h"
#include "frontend.h"
#include "prog.h"
#include "signature.h"
#include "boomerang.h"
#include "ansi-c-parser.h"
#include "config.h"
#include "managed.h"
#include "log.h"
#include "SymbolMatcher.h"
#include "../symbols/libidloader.h"

#include <sys/stat.h>
#include <sys/types.h>

Последний раз редактировалось Dimka-novitsek; 06.03.2015 в 15:35.
Dimka-novitsek вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компиляцию кода MAtlab в C++Builder и использование преобразованного кода .м в C++Builder Leg1oner C++ Builder 0 07.01.2014 18:15
Распознавание Аски кода и скан кода MyLastHit Общие вопросы Delphi 8 06.12.2010 18:34
Декомпиляторы DM_bite Софт 4 18.08.2008 11:05
Декомпиляторы! One.Love Софт 1 04.03.2008 09:58
Выдернуть куски кода из html-кода trafbite Помощь студентам 7 18.08.2007 13:51