Thursday, April 19, 2018

.so や.dylib関数の中身をのぞく方法

以下のコマンドを使うといいらしい。これはLinux/Unix-y systemどちらでも使える。

nm -g engines/libvsapi.dylib

実行すると以下のようになる

0000000000292780 S _AMG_VSdt
0000000000099980 T _AddChunkInfo
000000000009a170 T _AddContentInfo
00000000000998a0 T _AddFileInfoToList
0000000000099670 T _AddFileToContentMgr
00000000001d21b0 T _AddProc
00000000001af090 T _AddStr2JvsBuf
00000000001b19f0 T _AddStr2VbsBuf
00000000001b1a70 T _AddStr2VbsBufx
00000000001b3780 T _AddStr2XmlBuf
00000000001d2220 T _AddVar
00000000000c7430 T _AfiDebugDTKeep
00000000000c7440 T _AfiDebugPrint
00000000001b4dc0 T _AnalyzeTagToken
00000000001aa810 T _AnalyzeTextDNA
0000000000011510 T _BASE_ARCBLK_GetAddSize
00000000000116c0 T _BASE_ARCBLK_LoadBlock
0000000000011530 T _BASE_ARCBLK_ReadAddSizeBlock
0000000000016b50 T _BASE_BITWIDTH_Init
0000000000016140 T _BASE_BUFREAD_Close
00000000000160e0 T _BASE_BUFREAD_Open
0000000000015ea0 T _BASE_BUFREAD_Read
0000000000016040 T _BASE_BUFREAD_Seek
0000000000016170 T _BASE_BUFREAD_Tell
0000000000270d60 S _BASE_CPRDCPR_SOUND_CHANNELNUM
0000000000270d40 S _BASE_CPRDCPR_SOUND_MODELS
0000000000016c40 T _BASE_CRC_GetCRC
0000000000016c80 T _BASE_CRC_MakeCRCTable
00000000000126c0 T _BASE_DCPR_AddBits
00000000000154e0 T _BASE_DCPR_Block
00000000000150b0 T _BASE_DCPR_DecompressV20Block
0000000000011110 T _BASE_DCPR_Done
0000000000012660 T _BASE_DCPR_DoneFile
0000000000015cb0 T _BASE_DCPR_FillReadBuf
0000000000011ef0 T _BASE_DCPR_HUFF_MakeCodes
0000000000012bf0 T _BASE_DCPR_HUFF_ReadWidths
0000000000011000 T _BASE_DCPR_Init
00000000000159e0 T _BASE_DCPR_InitFile
0000000000013cb0 T _BASE_DCPR_LZ77_Block
0000000000013810 T _BASE_DCPR_LZ77_BlockCore
0000000000012ff0 T _BASE_DCPR_LZ77_CalcHuffTabs
00000000000124b0 T _BASE_DCPR_LZ77_CopyString
0000000000010f50 T _BASE_DCPR_LZ77_CopyToDictionary
0000000000013e60 T _BASE_DCPR_LZ77_PreprocessBlock
0000000000014230 T _BASE_DCPR_LZ77_ReadSymbols
00000000000129d0 T _BASE_DCPR_LZ77_ReadSymbolsCore
00000000000111c0 T _BASE_DCPR_LZ77_WriteChar
0000000000014bf0 T _BASE_DCPR_PIC_Block
0000000000011160 T _BASE_DCPR_PIC_Done
0000000000011200 T _BASE_DCPR_PIC_GetContext
0000000000012920 T _BASE_DCPR_PIC_GolombRice
0000000000014db0 T _BASE_DCPR_PIC_Init
0000000000011340 T _BASE_DCPR_PIC_InitModel
00000000000113b0 T _BASE_DCPR_PIC_InitQuantizers
0000000000014910 T _BASE_DCPR_PIC_Line
00000000000143a0 T _BASE_DCPR_PIC_Pixel
00000000000125a0 T _BASE_DCPR_PIC_SetPixelState
0000000000011250 T _BASE_DCPR_PIC_SetPixels1
0000000000011310 T _BASE_DCPR_PIC_SetPixels2
00000000000147f0 T _BASE_DCPR_PIC_Symbol
00000000000134d0 T _BASE_DCPR_SOUND_Block
0000000000012ef0 T _BASE_DCPR_SOUND_CalcDcprTabs
0000000000013100 T _BASE_DCPR_SOUND_Get
00000000000114b0 T _BASE_DCPR_SOUND_GetPredictedChar
0000000000013660 T _BASE_DCPR_SOUND_GetSymbol
0000000000010fa0 T _BASE_DCPR_SOUND_Init
00000000000121a0 T _BASE_DCPR_SOUND_RarAdjust
0000000000012120 T _BASE_DCPR_SOUND_RarPredict
00000000000157e0 T _BASE_DCPR_UnstoreBlock
0000000000016250 T _BASE_EXTRACT_DecompressFile
0000000000010f10 T _BASE_MEMORY_MemCopy
0000000000010ef0 T _BASE_MEMORY_MemSet16
0000000000016c90 T _BASE_PATHFUNC_ToSystemPathSeparatorN
0000000000016ea0 T _BASE_QSORT_DoQuicksort
0000000000016cc0 T _BASE_QSORT_SortRange
0000000000016b70 T _BASE_QSORT_XchgElements
0000000000016b90 T _BASE_STATE_OutputProgress
000000000028b4c0 S _BISTROBPtn
000000000028b660 S _BISTROPtn
00000000002749a0 S _BZ2_crc32Table
00000000002741a0 S _BZ2_rNums
00000000000c7460 T _BufDebug2File
00000000000c7450 T _BufDebugPrint
0000000000214480 T _BuildKey
00000000002880e2 S _CEdl_Mark
0000000000275efc S _COMPOBJ_Mark
00000000002835e0 S _CONTENT_TYPE_STR
0000000000276560 S _CRC_16_CCITT
00000000002880e7 S _CVba_Mark
000000000015a9c0 T _CalculateSha1ByHandleWithOffset
0000000000029d40 T _CheckAutoIt325UpHeader
00000000001954e0 T _CheckMFilter
00000000001ae810 T _CheckQuotedString
000000000014b1d0 T _ClearUpPolicyVirusInfoList
00000000001ed010 T _ConvertStringAndKeepTrailer
00000000001ed1e0 T _ConvertStringByHandle
00000000000995c0 T _ConvertToCompressMethod
00000000001f3400 T _ConvertUTF16toUTF8
00000000001ecf00 T _ConvertUTF16toUTF8AndKeepTrailer
0000000000099520 T _CountFieldOptionSize
000000000009a030 T _CountFieldSettingSize
00000000001ecbc0 T _CreateAllPDir
0000000000098310 T _CreateDataBlock
00000000001e7660 T _CreateFBCBStructure
000000000009ac70 T _CreateTempFileHandle
00000000002927c0 S _CusDef_VSdt
000000000004f290 T _CutLine_GenericEmbed
0000000000064f20 T _DBuf_DataCopy
00000000000647a0 T _DBuf_FreeAll
00000000000645c0 T _DBuf_GetItemById
0000000000064e60 T _DBuf_ParseLoadBufParam
0000000000064970 T _DBuf_ParseLoadBufParam2
0000000000064740 T _DBuf_ResetAll
00000000000652a0 T _DBuf_SetSize
0000000000016ed0 T _DC_BASE_STATE_WriteFile
000000000029aff4 S _DWG_Signature
00000000000c7370 T _DebugPrint
000000000009c620 T _DecodeFileContent
00000000001ab490 T _DecodeQuotedString
00000000001ecc20 T _DeleteCreatedDir
000000000007fbd0 T _DestroyExcepList
000000000015de60 T _DoUnescapeString
00000000002848a0 S _ENCRYPT_XML_VERSION
00000000000099d0 T _ExBase64Decode_html_uri_data
0000000000010ba0 T _ExZipintegrationCollect
0000000000010720 T _ExZipintegrationScan
0000000000098c80 T _ExeDecoder_After5020
0000000000098b30 T _ExeDecoder_Before5020
0000000000285aa0 S _ExpEscape
0000000000098490 T _ExtractContentToHandle
000000000009b5c0 T _ExtractFileContentHeader
0000000000098ac0 T _ExtractFromDecompressData
00000000001f5390 T _FeatureArray_FreeData
00000000001f5440 T _FeatureArray_GetByID
00000000001f5540 T _FeatureArray_GetFirst
00000000001f50b0 T _FeatureArray_GetNext
00000000001f4a70 T _FeatureArray_Init
00000000001f4ab0 T _FeatureArray_IsAllDisable
00000000001f5580 T _FeatureArray_IsAnyEnable
00000000001f54c0 T _FeatureArray_IsEnable
00000000001f55e0 T _FeatureArray_SetBytes
00000000001f5490 T _FeatureArray_SetDisableByID
00000000001f5460 T _FeatureArray_SetEnableByID
00000000001f5500 T _FeatureArray_SetInt32
00000000001f5630 T _FeatureArray_SetString
00000000002880b0 S _FileContent_Mark
00000000002023a0 T _FillWin32CrcPattern
0000000000022b40 T _FldcEntry
00000000001b3e70 T _FndScrTag
00000000001a6370 T _FoundStrInTab
00000000001b1b00 T _FoundStrInVBSXTab
00000000001af100 T _FoundStrInXTab2
00000000002926c0 S _FoxmailMBX_VSdt
00000000001a1580 T _FreePTPtn
00000000001aa250 T _FreeSTPtn
00000000001a8490 T _FreeScriptCRC
00000000000ab080 T _FreeVirusPattern
00000000001e6820 T _GPBGetData
00000000001e6840 T _GPBGetDataSize
00000000001e6800 T _GPBResetData
00000000001e8420 T _GPBWriteBytes
00000000001e83a0 T _GPBWriteGPB
00000000001e8300 T _GPBWriteInt32
00000000001e88a0 T _GPBWriteInt64
00000000001e6af0 T _GPBWriteRawChar
00000000001e6850 T _GPBWriteRawData
00000000001e8280 T _GPBWriteString
00000000001b8b40 T _GenerateTLSHByHandle
0000000000098210 T _GetCompressionInfo
0000000000099bd0 T _GetContentInfoElement
00000000001463c0 T _GetDWGObjBgnEnd
0000000000086110 T _GetEA16
0000000000086610 T _GetEA_32


ちな、例えばRubyでこれらの関数を呼び出したい場合、Fiddleを使う。

参考リンク
https://tipszone.jp/20140211_dynamic-link/


No comments:

Post a Comment