亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? elfi.h

?? C++寫的,提供操作ELF格式文件的API
?? H
字號:
/*
ELFI.h - ELF reader and producer.
Copyright (C) 2001 Serge Lamikhov-Center <to_serge@users.sourceforge.net>

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

#ifndef ELFI_H
#define ELFI_H

#include <string>
#include "ELFTypes.h"

// Forward declaration
class IELFI;
class IELFISection;
class IELFIStringReader;
class IELFISymbolTable;
class IELFIRelocationTable;
class IELFINoteReader;
class IELFIDynamicReader;
class IELFISegment;


// ELF file reader interface. This class gives an access to properties
// of a ELF file. Also you may get sections of the file or create
// section's readers.
class IELFI
{
  public:
    // Section reader's types
    enum ReaderType {
        ELFI_STRING,     // Strings reader
        ELFI_SYMBOL,     // Symbol table reader
        ELFI_RELOCATION, // Relocation table reader
        ELFI_NOTE,       // Notes reader
        ELFI_DYNAMIC,    // Dynamic section reader
        ELFI_HASH        // Hash 
    };
  
    // Construct/destroy/initialize an object
    virtual ELFIO_Err Load( const std::string& sFileName )        = 0;
    virtual ELFIO_Err Load( std::istream* pStream, int startPos ) = 0;
    virtual bool      IsInitialized() const                       = 0;
    virtual int       AddRef()        const                       = 0;
    virtual int       Release()       const                       = 0;

    // ELF header functions
    virtual unsigned char GetClass()      const = 0;
    virtual unsigned char GetEncoding()   const = 0;
    virtual unsigned char GetELFVersion() const = 0;
    virtual Elf32_Half    GetType()       const = 0;
    virtual Elf32_Half    GetMachine()    const = 0;
    virtual Elf32_Word    GetVersion()    const = 0;
    virtual Elf32_Addr    GetEntry()      const = 0;
    virtual Elf32_Word    GetFlags()      const = 0;
    virtual Elf32_Half    GetSecStrNdx()  const = 0;

    // Section provider functions
    virtual       Elf32_Half    GetSectionsNum()                      const = 0;
    virtual const IELFISection* GetSection( Elf32_Half index )        const = 0;
    virtual const IELFISection* GetSection( const std::string& name ) const = 0;
    
    // Segment provider functions
    virtual       Elf32_Half    GetSegmentsNum()               const = 0;
    virtual const IELFISegment* GetSegment( Elf32_Half index ) const = 0;

    // Section readers' builder
    virtual ELFIO_Err CreateSectionReader( ReaderType type, const IELFISection* pSection,
                                           void** ppObj ) const = 0;
};


// The class represents an ELF file section
class IELFISection
{
  public:
    virtual int AddRef()  const = 0;
    virtual int Release() const = 0;
    
    // Section info functions
    virtual Elf32_Half  GetIndex()     const = 0;
    virtual std::string GetName()      const = 0;
    virtual Elf32_Word  GetType()      const = 0;
    virtual Elf32_Word  GetFlags()     const = 0;
    virtual Elf32_Addr  GetAddress()   const = 0;
    virtual Elf32_Word  GetSize()      const = 0;
    virtual Elf32_Word  GetLink()      const = 0;
    virtual Elf32_Word  GetInfo()      const = 0;
    virtual Elf32_Word  GetAddrAlign() const = 0;
    virtual Elf32_Word  GetEntrySize() const = 0;
    virtual const char* GetData()      const = 0;
};


// Program segment
class IELFISegment
{
  public:
    virtual int AddRef()  const = 0;
    virtual int Release() const = 0;

    // Section info functions
    virtual Elf32_Word  GetType()            const = 0;
    virtual Elf32_Addr  GetVirtualAddress()  const = 0;
    virtual Elf32_Addr  GetPhysicalAddress() const = 0;
    virtual Elf32_Word  GetFileSize()        const = 0;
    virtual Elf32_Word  GetMemSize()         const = 0;
    virtual Elf32_Word  GetFlags()           const = 0;
    virtual Elf32_Word  GetAlign()           const = 0;
    virtual const char* GetData()            const = 0;
};


// String table reader
class IELFIStringReader : virtual public IELFISection
{
  public:
    virtual const char* GetString( Elf32_Word index ) const = 0;
};


// Symbol table reader
class IELFISymbolTable : virtual public IELFISection
{
  public:
    virtual Elf32_Half GetStringTableIndex() const = 0;
    virtual Elf32_Half GetHashTableIndex()   const = 0;

    virtual Elf32_Word GetSymbolNum() const = 0;
    virtual ELFIO_Err  GetSymbol( Elf32_Word index,
                                  std::string& name, Elf32_Addr& value, 
                                  Elf32_Word& size, 
                                  unsigned char& bind, unsigned char& type,
                                  Elf32_Half& section ) const = 0;
    virtual ELFIO_Err  GetSymbol( const std::string& name, Elf32_Addr& value, 
                                  Elf32_Word& size, 
                                  unsigned char& bind, unsigned char& type,
                                  Elf32_Half& section ) const = 0;
};


// Relocation table reader
class IELFIRelocationTable : virtual public IELFISection
{
  public:
    virtual Elf32_Half GetSymbolTableIndex()   const = 0;
    virtual Elf32_Half GetTargetSectionIndex() const = 0;

    virtual Elf32_Word GetEntriesNum()                      const = 0;
    virtual ELFIO_Err  GetEntry( Elf32_Word     index,
                                 Elf32_Addr&    offset, 
                                 Elf32_Word&    symbol,
                                 unsigned char& type,
                                 Elf32_Sword&   addend )    const = 0;
    virtual ELFIO_Err  GetEntry( Elf32_Word     index,
                                 Elf32_Addr&    offset, 
                                 Elf32_Addr&    symbolValue,
                                 std::string&   symbolName,
                                 unsigned char& type,
                                 Elf32_Sword&   addend,
                                 Elf32_Sword&   calcValue ) const = 0;
};


class IELFINoteReader : virtual public IELFISection
{
  public:
    // Notes reader functions
    virtual Elf32_Word GetNotesNum()                   const = 0;
    virtual ELFIO_Err  GetNote( Elf32_Word   index,
                                Elf32_Word&  type,
                                std::string& name,
                                void*& desc,
                                Elf32_Word& descSize ) const = 0;
};


class IELFIDynamicReader : virtual public IELFISection
{
  public:
    // Notes reader functions
    virtual Elf32_Word GetEntriesNum()                const = 0;
    virtual ELFIO_Err  GetEntry( Elf32_Word   index,
                                 Elf32_Sword& tag,
                                 Elf32_Word&  value ) const = 0;
};

#endif // ELFI_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丁香一区二区三区| 在线不卡免费欧美| 国产亚洲欧美中文| 国产精品99久久不卡二区| 精品黑人一区二区三区久久| 久草中文综合在线| 久久亚洲精品小早川怜子| 精品一区二区三区免费观看| 精品久久久三级丝袜| 久久91精品国产91久久小草| 欧美国产激情二区三区| 成人av在线播放网站| 亚洲色图另类专区| 8x8x8国产精品| 精品中文字幕一区二区| 国产色产综合色产在线视频 | 日本电影欧美片| 一区二区三区精品在线| 精品污污网站免费看| 日韩精品福利网| 久久久午夜精品| 日本高清视频一区二区| 日本91福利区| 国产精品国产自产拍高清av| 欧洲精品视频在线观看| 麻豆精品视频在线| 国产精品高潮呻吟| 欧美一区二区三区日韩| 国产成都精品91一区二区三| 亚洲人123区| 日韩视频一区二区三区在线播放| 狠狠色丁香久久婷婷综合丁香| 中文字幕的久久| 欧美欧美欧美欧美| 成人综合婷婷国产精品久久免费| 一区二区在线观看av| 欧美mv和日韩mv的网站| av电影一区二区| 日本亚洲三级在线| 亚洲欧洲韩国日本视频 | 欧美欧美午夜aⅴ在线观看| 国产一区二区伦理片| 亚洲欧美偷拍卡通变态| 日韩欧美另类在线| 最新中文字幕一区二区三区 | 久久爱www久久做| 欧美精品久久99久久在免费线| 久久99精品国产91久久来源| 亚洲精品乱码久久久久| 欧美主播一区二区三区美女| 国产一区二区三区在线观看免费视频| 亚洲欧洲av在线| 欧美成人性战久久| 欧美性大战xxxxx久久久| 国产成人丝袜美腿| 日韩激情一二三区| 亚洲精品午夜久久久| 精品国产百合女同互慰| 欧美日韩第一区日日骚| 福利电影一区二区| 免费久久精品视频| 亚洲高清一区二区三区| 国产精品毛片a∨一区二区三区| 91精品国产色综合久久不卡电影| 日本韩国欧美在线| av一区二区三区在线| 国产精品一二三区在线| 久草在线在线精品观看| 亚洲mv在线观看| 亚洲精品五月天| 中文字幕一区三区| 国产精品女同互慰在线看| 久久综合狠狠综合久久激情| 在线不卡欧美精品一区二区三区| 91九色最新地址| 不卡的av中国片| 波多野结衣精品在线| 国产精品一区久久久久| 国产一区二区三区香蕉| 韩国一区二区三区| 国产麻豆精品久久一二三| 久久不见久久见中文字幕免费| 热久久免费视频| 美女一区二区视频| 喷水一区二区三区| 免费黄网站欧美| 精品一区二区三区蜜桃| 久久成人av少妇免费| 精品一区中文字幕| 国产精品一区二区91| 成人小视频在线观看| 成人av电影在线观看| 成人性生交大片免费看中文网站| 丰满少妇在线播放bd日韩电影| 成人黄色a**站在线观看| 成人午夜视频在线| 一本色道久久综合精品竹菊| 色婷婷亚洲综合| 欧洲精品一区二区三区在线观看| 欧美日韩亚洲不卡| 欧美一区二区三区在线观看视频 | 日韩av中文字幕一区二区| 日日摸夜夜添夜夜添国产精品| 天天av天天翘天天综合网色鬼国产| 日韩高清中文字幕一区| 国产一区福利在线| 波多野结衣欧美| 欧美日韩一区在线观看| 日韩一区二区免费视频| 久久久国产精品午夜一区ai换脸| 久久精品人人做人人综合| 中文字幕一区二区三区蜜月 | 色琪琪一区二区三区亚洲区| 欧美天堂亚洲电影院在线播放| 欧美一区二区三区视频免费播放| 久久综合九色欧美综合狠狠 | 蜜桃视频在线一区| 国产在线精品一区二区三区不卡| 成人av手机在线观看| 欧美日韩国产影片| 国产亚洲精品福利| 亚洲高清视频的网址| 国产乱码精品一区二区三区忘忧草| 99在线视频精品| 欧美狂野另类xxxxoooo| 欧美激情艳妇裸体舞| 亚洲图片自拍偷拍| 国产成人综合亚洲网站| 欧美少妇bbb| 日本一区二区久久| 肉色丝袜一区二区| 色妞www精品视频| 久久综合九色综合97婷婷女人| 夜夜揉揉日日人人青青一国产精品| 美女尤物国产一区| 欧美少妇一区二区| 国产精品久久久久影视| 免费视频一区二区| 色先锋久久av资源部| 久久久精品国产99久久精品芒果| 亚洲一二三专区| 成人中文字幕在线| 精品久久国产字幕高潮| 亚洲综合精品久久| 成人av电影观看| 久久久久免费观看| 不卡av免费在线观看| 日韩一区二区三区观看| 亚洲综合成人在线| 91女神在线视频| 国产网站一区二区| 精品一二线国产| 日韩一区二区三区免费看| 亚洲精选视频在线| a4yy欧美一区二区三区| 欧美国产欧美亚州国产日韩mv天天看完整 | 激情成人综合网| 欧美日韩国产精品成人| 又紧又大又爽精品一区二区| 成人国产在线观看| 国产亚洲一区二区在线观看| 玖玖九九国产精品| 91精品欧美综合在线观看最新| 夜夜亚洲天天久久| 欧美三级电影一区| 亚洲综合精品久久| 欧美日韩高清在线播放| 亚洲黄色小视频| 色婷婷亚洲精品| 一区二区久久久久久| 色又黄又爽网站www久久| 亚洲色图视频网站| 91久久精品一区二区| 亚洲黄色av一区| 欧美日韩成人综合天天影院| 亚洲国产成人91porn| 欧美日韩国产另类一区| 日韩高清在线不卡| 精品国内二区三区| 国产寡妇亲子伦一区二区| 国产三级一区二区三区| 成人免费毛片a| 亚洲女爱视频在线| 欧美在线观看视频在线| 午夜影院在线观看欧美| 欧美日韩dvd在线观看| 蜜桃视频一区二区三区| 久久九九久久九九| 不卡av电影在线播放| 亚洲国产一区二区视频| 777亚洲妇女| 国产精品一区二区无线| 最近中文字幕一区二区三区| 欧美亚洲国产怡红院影院| 午夜精品免费在线观看| 欧美不卡123| 99久久亚洲一区二区三区青草| 亚洲一区二区偷拍精品| 日韩精品一区二区三区在线观看| 国产乱人伦偷精品视频不卡|