|
分享源码
界面截图: |
|
是否带模块: |
纯源码 |
备注说明: |
- |
本帖最后由 埃菲尔铁塔ATA 于 2022-8-19 11:13 编辑
|
Load | 整数型 | | |
data | 字节集 | | | | datalen | 整数型 | | | | fnName | 文本型 | | | | fnOrdinals | 整数型 | | | | dllName | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | optionalPE | 整数型 | | | RVAOfExportTable | 整数型 | | | SizeOfExportTable | 整数型 | | | FOAOfExportTable | 整数型 | | | SelectionTable | 字节集 | | | VirtualAddressOfSelection | 整数型 | | | PointerToRawDataOfSelection | 整数型 | | | SizeOfSelction | 整数型 | | | ExOfName | 整数型 | | | NameOfDll | 文本型 | | | ExOfBase | 短整数型 | | | ExOfNumberOfFunctions | 整数型 | | | ExOfNumberOfNames | 整数型 | | | ExOfAddressOfFunctions | 整数型 | | | ExOfAddressOfFunctions_RVA | 整数型 | | | ExOfAddressOfNames | 整数型 | | | ExOfAddressOfNames_FOA | 整数型 | | | NameOfFunction | 文本型 | | | ExOfAddressOfNameOrdinals | 整数型 | | | ExOfAddressOfNameOrdinals_Value | 短整数型 | | | i | 整数型 | | | j | 整数型 | | | cnt | 整数型 | | | 如果真 (是否为空 (fnOrdinals ) 且 是否为空 (fnName )) 返回 (-1 )如果真 (取反 (是否为空 (fnOrdinals )) )如果真 (取反 (是否为空 (fnName )) ) 返回 (-1 )如果真 (data [1 ] ≠ 77 或 data [2 ] ≠ 90 ) 返回 (-1 )optionalPE = 取字节集数据 (data, #整数型, 60 + 1) + 4 + 20
RVAOfExportTable = 取字节集数据 (data, #整数型, optionalPE + 96 + 1 )SizeOfExportTable = 取字节集数据 (data, #整数型, optionalPE + 96 + 4 + 1 ) i = 0 判断循环首 (真)SelectionTable = 取字节集中间 (data, optionalPE + 97 + 128 + 40 × i, 40 )计次循环首 (40, j )cnt = cnt + SelectionTable [j ]计次循环尾 ()如果真 (cnt = 0 )跳出循环 ()VirtualAddressOfSelection = 取字节集数据 (SelectionTable, #整数型, 8 + 4 + 1)PointerToRawDataOfSelection = 取字节集数据 (SelectionTable, #整数型, 8 + 4 + 8 + 1 )SizeOfSelction = 取字节集数据 (SelectionTable, #整数型, 8 + 4 + 4 + 1 )如果真 (VirtualAddressOfSelection ≤ RVAOfExportTable 且 RVAOfExportTable ≤ VirtualAddressOfSelection + SizeOfSelction )FOAOfExportTable = PointerToRawDataOfSelection + RVAOfExportTable - VirtualAddressOfSelection 跳出循环 ()i = i + 1cnt = 0 判断循环尾 () cnt = 0 如果真 (取反 (是否为空 (dllName )) )ExOfName = 取字节集数据 (data, #整数型, FOAOfExportTable + 1 + 12 )i = 1 判断循环首 (data [PointerToRawDataOfSelection + ExOfName - VirtualAddressOfSelection + i ] ≠ 0 )NameOfDll = NameOfDll + 到文本 (到字节集 (data [PointerToRawDataOfSelection + ExOfName - VirtualAddressOfSelection + i ])) i = i + 1 判断循环尾 ()如果真 (dllName ≠ NameOfDll ) 返回 (-1 )ExOfNumberOfFunctions = 取字节集数据 (data, #整数型, FOAOfExportTable + 1 + 20)如果真 (ExOfNumberOfFunctions ≤ 0 ) 返回 (-1 )ExOfNumberOfNames = 取字节集数据 (data, #整数型, FOAOfExportTable + 1 + 24 )如果真 (取反 (是否为空 (fnName )) 且 ExOfNumberOfNames > 0 ) ExOfAddressOfNames = 取字节集数据 (data, #整数型, FOAOfExportTable + 1 + 32 ) 计次循环首 (ExOfNumberOfNames, i )ExOfAddressOfNames_FOA = PointerToRawDataOfSelection + 取字节集数据 (data, #整数型, PointerToRawDataOfSelection + ExOfAddressOfNames - VirtualAddressOfSelection (i - 1 ) × 4 + 1 ) - VirtualAddressOfSelection j = 1 判断循环首 (data [ExOfAddressOfNames_FOA + j ] ≠ 0 )NameOfFunction = NameOfFunction + 到文本 (到字节集 (data [ExOfAddressOfNames_FOA + j ])) j = j + 1 判断循环尾 ()如果真 (fnName = NameOfFunction )cnt = i - 1 跳出循环 ()NameOfFunction = “”计次循环尾 () 如果真 (取反 (是否为空 (fnOrdinals )) )cnt = fnOrdinals ExOfAddressOfNameOrdinals = 取字节集数据 (data, #整数型, FOAOfExportTable + 1 + 36)ExOfAddressOfNameOrdinals_Value = 取字节集数据 (data, #短整数型, PointerToRawDataOfSelection + ExOfAddressOfNameOrdinals - VirtualAddressOfSelection + cnt × 2 + 1 )如果真 (cnt ≥ 0 )ExOfBase = 取字节集数据 (data, #短整数型, FOAOfExportTable + 1 + 16 )ExOfAddressOfFunctions = 取字节集数据 (data, #整数型, FOAOfExportTable + 1 + 28 ) ExOfAddressOfFunctions_RVA = 取字节集数据 (data, #整数型, PointerToRawDataOfSelection + ExOfAddressOfFunctions - VirtualAddressOfSelection (ExOfAddressOfNameOrdinals_Value - ExOfBase + 1 ) × 4 + 1 ) i = 0 判断循环首 (真)SelectionTable = 取字节集中间 (data, optionalPE + 97 + 128 + 40 × i, 40 )计次循环首 (40, j )cnt = cnt + SelectionTable [j ]计次循环尾 ()如果真 (cnt = 0 )跳出循环 ()VirtualAddressOfSelection = 取字节集数据 (SelectionTable, #整数型, 8 + 4 + 1)PointerToRawDataOfSelection = 取字节集数据 (SelectionTable, #整数型, 8 + 4 + 8 + 1 )SizeOfSelction = 取字节集数据 (SelectionTable, #整数型, 8 + 4 + 4 + 1 )如果真 (VirtualAddressOfSelection ≤ ExOfAddressOfFunctions_RVA 且 ExOfAddressOfFunctions_RVA ≤ VirtualAddressOfSelection + SizeOfSelction )返回 (PointerToRawDataOfSelection + ExOfAddressOfFunctions_RVA - VirtualAddressOfSelection )i = i + 1cnt = 0 判断循环尾 ()返回 (-1)
|
-
-
toFOA.e
11.03 KB, 下载次数: 35, 下载积分: 精币 -2 枚
评分
-
查看全部评分
|