自己转吧,指针空值为nil,->为.

解决方案 »

  1.   

    PIMAGE_IMPORT_DESCRIPTOR pImportDescriptor = NULL, pDescriptor = NULL; 
    PIMAGE_DATA_DIRECTORY pImportDir = NULL; 
    PCHAR pszDllName = NULL; 
    UINT nSize = 0; 
    PCHAR pData = NULL; 
    PCHAR pFunNum =NULL; 
    PIMAGE_THUNK_DATA32 pFirstThunk = NULL; 
    PIMAGE_IMPORT_BY_NAME pImportName = NULL; try 

    pImportDir = &m_pntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT]; 
    pImportDescriptor =(PIMAGE_IMPORT_DESCRIPTOR)RVAToPtr(pImportDir->VirtualAddress); // 遍历原始输入表 
    for (pData = m_pImportTable, pDescriptor = pImportDescriptor; pDescriptor->Name != 0; pDescriptor ++) 

    // 保存首THUNK数据的RVA地址 
    *(DWORD *)pData = pDescriptor->FirstThunk; 
    pData += sizeof(DWORD); 
    // 保存DLL名称长度(WORD) 
    pszDllName = (PCHAR)RVAToPtr(pDescriptor->Name); 
    *(BYTE *)(pData) = (BYTE)(strlen(pszDllName) ); //DLL字符串长度 
    pData += sizeof(BYTE); 
    //保存DLL字符串 
    memcpy(pData, pszDllName, strlen(pszDllName) + 1); 
    pData += strlen(pszDllName) + 1; 
    pFunNum = pData; //pFunNum 指向需要初始函数的数目 
    *(DWORD *)pFunNum =0; pData += sizeof(DWORD);//指向“BYTE |STRING|00|…” 
    就帮我转这些也行,有写地方不懂:*(DWORD *)pData ;pData += sizeof(DWORD); =(PIMAGE_IMPORT_DESCRIPTOR)RVAToPtr(pImportDir->VirtualAddress); 还请大家帮忙啊!
      

  2.   

    好像是按字节读内容,试试用Tstream吧
      

  3.   

    *(DWORD *)pData = pDescriptor->FirstThunk;
    pImportDescriptor =(PIMAGE_IMPORT_DESCRIPTOR)RVAToPtr(pImportDir->VirtualAddress); 
    主要是上面的两句在delphi下怎么写?不会啊?
      

  4.   

    PDWORD(pData)^ := pDescriptor.FirstThunk;
    pImportDescriptor := PIMAGE_IMPORT_DESCRIPTOR(RVAToPtr(pImportDir.VirtualAddress));pData += sizeof(DWORD); => Inc(pData, SizeOf(DWORD));
      

  5.   

    PDWORD(pData)^ := pDescriptor.FirstThunk; 
    pImportDescriptor := PIMAGE_IMPORT_DESCRIPTOR(RVAToPtr(pImportDir.VirtualAddress)); pData += sizeof(DWORD); => Inc(pData, SizeOf(DWORD)); 
      

  6.   

    操作PE的引入表和导出表?楼上都说完了,不过个人觉得要读DLL表函数用for语句可能方便点
    比如for I := 0 to ExportEntry^.NumberOfFunctions - 1 do