Welcome, Guest. Please login or register.

Author Topic: Extracting OS4.x API information from publicly available executables  (Read 7191 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline PiruTopic starter

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show all replies
    • http://www.iki.fi/sintonen/
This post attempts to counter the claims that Ilkka 'itix' Lehtoranta would have somehow pirated the OS4.x development files or would have lied while developing the OS4Emu 2.0.

While I have no detailed knowledge of the OS4.x itself, I'm making some assumptions here:
1. I assume that the latest OS4 SDK includes OS 4.0 function calls and structures.
2. I assume that if some new functions or structures not included in the OS 4.0 SDK are found, they are included in the OS 4.1 SDK.

I know it might well be that OS4.0 already implements most of this functionality and that it has only stayed private for now. Regardless, since it has stayed private, one can assume it has not been deemed ready for use until the new OS4.1 release (for reasons unknown).

The claim has been that Ilkka would not have been able to obtain any information about the new function calls or OS structures without having the access to the OS4 internal and private files, which are obviously guarded quite well.
It might come as a surprise that one of the leaking binaries was in fact released by Xeron himself.

Observe:

(The following was done under linux, but the tools used are available for most platforms. Just the element names are displayed here, for brevity.)
Code: [Select]

% wget http://www.petergordon.org.uk/files/ht14.lha
% lha -xi ht14.lha HivelyTracker/Replayer/play_hvl
% readelf --debug-dump=info play_hvl | grep DW_AT_name > names.txt

Now lets examine names.txt

Exec interface:
Code: [Select]

  <10fb>     DW_AT_name        : ExecIFace
  <110a>     DW_AT_name        : Data
  <1119>     DW_AT_name        : (indirect string, offset: 0x14): Obtain
  <1127>     DW_AT_name        : (indirect string, offset: 0x1b): Release
  <1135>     DW_AT_name        : (indirect string, offset: 0x36): Expunge
  <1143>     DW_AT_name        : Clone
  <1153>     DW_AT_name        : AddHead
  <1165>     DW_AT_name        : AddMemHandler
  <117d>     DW_AT_name        : AddMemList
  <1192>     DW_AT_name        : AddTail
  <11a4>     DW_AT_name        : AllocAbs
  <11b7>     DW_AT_name        : Allocate
  <11ca>     DW_AT_name        : AllocEntry
  <11df>     DW_AT_name        : AllocMem
  <11f2>     DW_AT_name        : AllocPooled
  <1208>     DW_AT_name        : AllocVec
  <121b>     DW_AT_name        : AllocVecPooled
  <1234>     DW_AT_name        : AvailMem
  <1247>     DW_AT_name        : CopyMem
  <1259>     DW_AT_name        : CopyMemQuick
  <1271>     DW_AT_name        : CreatePool
  <1287>     DW_AT_name        : Deallocate
  <129d>     DW_AT_name        : DeletePool
  <12b3>     DW_AT_name        : Enqueue
  <12c6>     DW_AT_name        : FindName
  <12da>     DW_AT_name        : FindIName
  <12ef>     DW_AT_name        : Forbid
  <1301>     DW_AT_name        : FreeEntry
  <1316>     DW_AT_name        : FreeMem
  <1329>     DW_AT_name        : FreePooled
  <133f>     DW_AT_name        : FreeVec
  <1352>     DW_AT_name        : FreeVecPooled
  <136b>     DW_AT_name        : InitData
  <137f>     DW_AT_name        : InitStruct
  <1395>     DW_AT_name        : Insert
  <13a7>     DW_AT_name        : MakeInterface
  <13c0>     DW_AT_name        : MakeInterfaceTags
  <13dd>     DW_AT_name        : Permit
  <13ef>     DW_AT_name        : RawDoFmt
  <1403>     DW_AT_name        : RemHead
  <1416>     DW_AT_name        : RemMemHandler
  <142f>     DW_AT_name        : Remove
  <1441>     DW_AT_name        : RemTail
  <1454>     DW_AT_name        : TypeOfMem
  <1469>     DW_AT_name        : InitResident
  <1481>     DW_AT_name        : InitCode
  <1495>     DW_AT_name        : SumKickData
  <14ac>     DW_AT_name        : AddTask
  <14bf>     DW_AT_name        : AddTaskTags
  <14d6>     DW_AT_name        : Disable
  <14e9>     DW_AT_name        : Enable
  <14fb>     DW_AT_name        : Private1
  <150f>     DW_AT_name        : FindTask
  <1523>     DW_AT_name        : RemTask
  <1536>     DW_AT_name        : SetTaskPri
  <154c>     DW_AT_name        : StackSwap
  <1561>     DW_AT_name        : AllocSignal
  <1578>     DW_AT_name        : FreeSignal
  <158e>     DW_AT_name        : SetExcept
  <15a3>     DW_AT_name        : SetSignal
  <15b8>     DW_AT_name        : Signal
  <15ca>     DW_AT_name        : Wait
  <15da>     DW_AT_name        : AddPort
  <15ed>     DW_AT_name        : CreatePort
  <1603>     DW_AT_name        : CreateMsgPort
  <161c>     DW_AT_name        : DeletePort
  <1632>     DW_AT_name        : DeleteMsgPort
  <164b>     DW_AT_name        : FindPort
  <165f>     DW_AT_name        : GetMsg
  <1671>     DW_AT_name        : PutMsg
  <1683>     DW_AT_name        : RemPort
  <1696>     DW_AT_name        : ReplyMsg
  <16aa>     DW_AT_name        : WaitPort
  <16be>     DW_AT_name        : Cause
  <16cf>     DW_AT_name        : AddSemaphore
  <16e7>     DW_AT_name        : AttemptSemaphore
  <1703>     DW_AT_name        : AttemptSemaphoreShared
  <1725>     DW_AT_name        : FindSemaphore
  <173e>     DW_AT_name        : InitSemaphore
  <1757>     DW_AT_name        : ObtainSemaphore
  <1772>     DW_AT_name        : ObtainSemaphoreList
  <1791>     DW_AT_name        : ObtainSemaphoreShared
  <17b2>     DW_AT_name        : Procure
  <17c5>     DW_AT_name        : ReleaseSemaphore
  <17e1>     DW_AT_name        : ReleaseSemaphoreList
  <1801>     DW_AT_name        : RemSemaphore
  <1819>     DW_AT_name        : Vacate
  <182b>     DW_AT_name        : CreateTask
  <1841>     DW_AT_name        : CreateTaskTags
  <185b>     DW_AT_name        : DeleteTask
  <1871>     DW_AT_name        : SumLibrary
  <1887>     DW_AT_name        : CreateLibrary
  <18a0>     DW_AT_name        : CreateLibraryTags
  <18bd>     DW_AT_name        : OpenLibrary
  <18d4>     DW_AT_name        : CloseLibrary
  <18ec>     DW_AT_name        : AddLibrary
  <1902>     DW_AT_name        : RemLibrary
  <1918>     DW_AT_name        : AddDevice
  <192d>     DW_AT_name        : RemDevice
  <1942>     DW_AT_name        : GetInterface
  <195a>     DW_AT_name        : GetInterfaceTags
  <1976>     DW_AT_name        : DropInterface
  <198f>     DW_AT_name        : AddInterface
  <19a7>     DW_AT_name        : RemInterface
  <19bf>     DW_AT_name        : SumInterface
  <19d7>     DW_AT_name        : FindResident
  <19ef>     DW_AT_name        : SetMethod
  <1a04>     DW_AT_name        : DeleteInterface
  <1a1f>     DW_AT_name        : DeleteLibrary
  <1a38>     DW_AT_name        : SetFunction
  <1a4f>     DW_AT_name        : CacheClearE
  <1a66>     DW_AT_name        : CacheClearU
  <1a7d>     DW_AT_name        : MakeFunctions
  <1a96>     DW_AT_name        : OpenDevice
  <1aac>     DW_AT_name        : CloseDevice
  <1ac3>     DW_AT_name        : CreateIORequest
  <1ade>     DW_AT_name        : DeleteIORequest
  <1af9>     DW_AT_name        : AbortIO
  <1b0c>     DW_AT_name        : CheckIO
  <1b1f>     DW_AT_name        : DoIO
  <1b2f>     DW_AT_name        : SendIO
  <1b41>     DW_AT_name        : BeginIO
  <1b54>     DW_AT_name        : WaitIO
  <1b66>     DW_AT_name        : AddResource
  <1b7d>     DW_AT_name        : RemResource
  <1b94>     DW_AT_name        : OpenResource
  <1bac>     DW_AT_name        : AddIntServer
  <1bc4>     DW_AT_name        : RemIntServer
  <1bdc>     DW_AT_name        : SetIntVector
  <1bf4>     DW_AT_name        : ObtainQuickVector
  <1c11>     DW_AT_name        : Alert
  <1c22>     DW_AT_name        : SuperState
  <1c38>     DW_AT_name        : UserState
  <1c4d>     DW_AT_name        : Supervisor
  <1c63>     DW_AT_name        : SetTaskTrap
  <1c7a>     DW_AT_name        : AllocTrap
  <1c8f>     DW_AT_name        : FreeTrap
  <1ca3>     DW_AT_name        : GetCC
  <1cb4>     DW_AT_name        : SetSR
  <1cc5>     DW_AT_name        : AVL_AddNode
  <1cdc>     DW_AT_name        : AVL_FindFirstNode
  <1cf9>     DW_AT_name        : AVL_FindLastNode
  <1d15>     DW_AT_name        : AVL_FindNextNodeByAddress
  <1d3a>     DW_AT_name        : AVL_FindNextNodeByKey
  <1d5b>     DW_AT_name        : AVL_FindNode
  <1d73>     DW_AT_name        : AVL_FindPrevNodeByAddress
  <1d98>     DW_AT_name        : AVL_FindPrevNodeByKey
  <1db9>     DW_AT_name        : AVL_RemNodeByAddress
  <1dd9>     DW_AT_name        : AVL_RemNodeByKey
  <1df5>     DW_AT_name        : CacheControl
  <1e0d>     DW_AT_name        : LockMem
  <1e20>     DW_AT_name        : UnlockMem
  <1e35>     DW_AT_name        : ReallocVec
  <1e4b>     DW_AT_name        : CachePreDMA
  <1e62>     DW_AT_name        : CachePostDMA
  <1e7a>     DW_AT_name        : StartDMA
  <1e8e>     DW_AT_name        : EndDMA
  <1ea0>     DW_AT_name        : GetDMAList
  <1eb6>     DW_AT_name        : AddTrackable
  <1ece>     DW_AT_name        : FindTrackable
  <1ee7>     DW_AT_name        : RemTrackable
  <1eff>     DW_AT_name        : DeleteTrackable
  <1f1a>     DW_AT_name        : AllocSysObject
  <1f34>     DW_AT_name        : AllocSysObjectTags
  <1f52>     DW_AT_name        : FreeSysObject
  <1f6b>     DW_AT_name        : SuspendTask
  <1f82>     DW_AT_name        : RestartTask
  <1f99>     DW_AT_name        : MoveList
  <1fad>     DW_AT_name        : NewList
  <1fc0>     DW_AT_name        : NewMinList
  <1fd6>     DW_AT_name        : ColdReboot
  <1fec>     DW_AT_name        : MakeLibrary
  <2003>     DW_AT_name        : Emulate
  <2016>     DW_AT_name        : EmulateTags
  <202d>     DW_AT_name        : DebugPrintF
  <2044>     DW_AT_name        : IsNative
  <2058>     DW_AT_name        : Private2
  <206c>     DW_AT_name        : Private3
  <2080>     DW_AT_name        : GetCPUInfo
  <2096>     DW_AT_name        : GetCPUInfoTags
  <20b0>     DW_AT_name        : OwnerOfMem
  <20c6>     DW_AT_name        : AddResetCallback
  <20e2>     DW_AT_name        : RemResetCallback
  <20fe>     DW_AT_name        : ItemPoolAlloc
  <2117>     DW_AT_name        : ItemPoolFree
  <212f>     DW_AT_name        : ItemPoolGC
  <2145>     DW_AT_name        : ItemPoolControl
  <2160>     DW_AT_name        : ItemPoolControlTags
  <217f>     DW_AT_name        : ItemPoolFlush
  <2198>     DW_AT_name        : GetHead
  <21ab>     DW_AT_name        : GetTail
  <21be>     DW_AT_name        : GetSucc
  <21d1>     DW_AT_name        : GetPred
  <21e4>     DW_AT_name        : IceColdReboot
  <21fd>     DW_AT_name        : Private4
  <2211>     DW_AT_name        : Private5
  <2225>     DW_AT_name        : Private6
  <2239>     DW_AT_name        : Private7
  <224d>     DW_AT_name        : Private8
  <2261>     DW_AT_name        : Private9
  <2275>     DW_AT_name        : Private10
  <228a>     DW_AT_name        : Private11
  <229f>     DW_AT_name        : Private12
  <22b4>     DW_AT_name        : Private13
  <22c9>     DW_AT_name        : Private14
  <22de>     DW_AT_name        : Private15
  <22f3>     DW_AT_name        : Private16
  <2308>     DW_AT_name        : Private17
  <231d>     DW_AT_name        : Private18
  <2332>     DW_AT_name        : Private19
  <2347>     DW_AT_name        : Private20
  <235c>     DW_AT_name        : Private21
  <2371>     DW_AT_name        : Obsolete1
  <2386>     DW_AT_name        : Obsolete2
  <239b>     DW_AT_name        : Obsolete3
  <23b0>     DW_AT_name        : RMapAlloc
  <23c5>     DW_AT_name        : RMapFree
  <23d9>     DW_AT_name        : Private22
  <23ee>     DW_AT_name        : Private23
  <2403>     DW_AT_name        : Private24
  <2418>     DW_AT_name        : AllocVecTagList
  <2433>     DW_AT_name        : AllocVecTags
  <244b>     DW_AT_name        : Private25
  <2460>     DW_AT_name        : RMapExtAlloc
  <2478>     DW_AT_name        : RMapExtFree
  <248f>     DW_AT_name        : Private26
  <24a4>     DW_AT_name        : AllocNamedMemory
  <24c0>     DW_AT_name        : AllocNamedMemoryTags
  <24e0>     DW_AT_name        : FreeNamedMemory
  <24fb>     DW_AT_name        : FindNamedMemory
  <2516>     DW_AT_name        : UpdateNamedMemory
  <2533>     DW_AT_name        : LockNamedMemory
  <254f>     DW_AT_name        : AttemptNamedMemory
  <256e>     DW_AT_name        : UnlockNamedMemory
  <258c>     DW_AT_name        : ScanNamedMemory
  <25a8>     DW_AT_name        : AllocTaskMemEntry
  <25c6>     DW_AT_name        : Private27
  <25dc>     DW_AT_name        : Private28
  <25f2>     DW_AT_name        : Private29
  <2608>     DW_AT_name        : Private30
  <261e>     DW_AT_name        : MutexObtain
  <2636>     DW_AT_name        : MutexAttempt
  <264f>     DW_AT_name        : MutexRelease
  <2668>     DW_AT_name        : MutexAttemptWithSignal
  <268b>     DW_AT_name        : NewStackRun
  <26a3>     DW_AT_name        : NewStackRunTags

DOS structure apparently related to the new 64bit stuff:
Code: [Select]

  <8b45>     DW_AT_name        : ExamineData
  <8b55>     DW_AT_name        : EXDnode
  <8b67>     DW_AT_name        : EXDinfo
  <8b79>     DW_AT_name        : FSPrivate
  <8b8d>     DW_AT_name        : DOSPrivate
  <8ba2>     DW_AT_name        : StructSize
  <8bb7>     DW_AT_name        : Type
  <8bc6>     DW_AT_name        : FileSize
  <8bd9>     DW_AT_name        : Date
  <8be8>     DW_AT_name        : UseCount
  <8bfb>     DW_AT_name        : (indirect string, offset: 0xb0): Reserved1
  <8c09>     DW_AT_name        : ObjectID
  <8c1c>     DW_AT_name        : Name
  <8c2b>     DW_AT_name        : NameSize
  <8c3e>     DW_AT_name        : Comment
  <8c50>     DW_AT_name        : CommentSize
  <8c66>     DW_AT_name        : Link
  <8c75>     DW_AT_name        : LinkSize
  <8c88>     DW_AT_name        : Protection
  <8c9d>     DW_AT_name        : OwnerUID
  <8cb0>     DW_AT_name        : OwnerGID

DOS interface:
Code: [Select]

      DW_AT_name        : DOSIFace
      DW_AT_name        : Data
      DW_AT_name        : (indirect string, offset: 0x8d): Obtain
      DW_AT_name        : (indirect string, offset: 0x63): Release
      DW_AT_name        : (indirect string, offset: 0x75): Expunge
      DW_AT_name        : Clone
      DW_AT_name        : Open
      DW_AT_name        : Close
      DW_AT_name        : Read
      DW_AT_name        : Write
      DW_AT_name        : Input
      DW_AT_name        : Output
      DW_AT_name        : Seek
      DW_AT_name        : DeleteFile
      DW_AT_name        : Rename
      DW_AT_name        : Lock
      DW_AT_name        : UnLock
      DW_AT_name        : DupLock
      DW_AT_name        : Examine
      DW_AT_name        : ExNext
      DW_AT_name        : Info
      DW_AT_name        : CreateDir
      DW_AT_name        : CurrentDir
      DW_AT_name        : IoErr
      DW_AT_name        : CreateProc
      DW_AT_name        : OBSOLETEExit
      DW_AT_name        : OBSOLETELoadSeg
      DW_AT_name        : UnLoadSeg
      DW_AT_name        : (indirect string, offset: 0xb0): Reserved1
      DW_AT_name        : LoadSeg
      DW_AT_name        : DeviceProc
      DW_AT_name        : SetComment
      DW_AT_name        : SetProtection
      DW_AT_name        : (indirect string, offset: 0x6b): DateStamp
      DW_AT_name        : Delay
      DW_AT_name        : WaitForChar
      DW_AT_name        : ParentDir
      DW_AT_name        : IsInteractive
      DW_AT_name        : Execute
      DW_AT_name        : AllocDosObject
      DW_AT_name        : AllocDosObjectTagList
      DW_AT_name        : AllocDosObjectTags
      DW_AT_name        : FreeDosObject
      DW_AT_name        : DoPkt
      DW_AT_name        : DoPkt0
      DW_AT_name        : DoPkt1
      DW_AT_name        : DoPkt2
      DW_AT_name        : DoPkt3
      DW_AT_name        : DoPkt4
      DW_AT_name        : SendPkt
      DW_AT_name        : WaitPkt
      DW_AT_name        : ReplyPkt
      DW_AT_name        : (indirect string, offset: 0xba): Reserved2
      DW_AT_name        : LockRecord
      DW_AT_name        : LockRecords
      DW_AT_name        : UnLockRecord
      DW_AT_name        : UnLockRecords
      DW_AT_name        : SelectInput
      DW_AT_name        : SelectOutput
      DW_AT_name        : FGetC
      DW_AT_name        : FPutC
      DW_AT_name        : UnGetC
      DW_AT_name        : FRead
      DW_AT_name        : FWrite
      DW_AT_name        : FGets
      DW_AT_name        : FPuts
      DW_AT_name        : OBSOLETEVFWritef
      DW_AT_name        : OBSOLETEFWritef
      DW_AT_name        : VFPrintf
      DW_AT_name        : FPrintf
      DW_AT_name        : FFlush
      DW_AT_name        : SetVBuf
      DW_AT_name        : DupLockFromFH
      DW_AT_name        : OpenFromLock
      DW_AT_name        : ParentOfFH
      DW_AT_name        : ExamineFH
      DW_AT_name        : SetFileDate
      DW_AT_name        : NameFromLock
      DW_AT_name        : NameFromFH
      DW_AT_name        : SplitName
      DW_AT_name        : SameLock
      DW_AT_name        : SetMode
      DW_AT_name        : ExAll
      DW_AT_name        : ReadLink
      DW_AT_name        : MakeLink
      DW_AT_name        : ChangeMode
      DW_AT_name        : SetFileSize
      DW_AT_name        : SetIoErr
      DW_AT_name        : Fault
      DW_AT_name        : PrintFault
      DW_AT_name        : ErrorReport
      DW_AT_name        : PRIVATERequester
      DW_AT_name        : Cli
      DW_AT_name        : CreateNewProc
      DW_AT_name        : CreateNewProcTagList
      DW_AT_name        : CreateNewProcTags
      DW_AT_name        : RunCommand
      DW_AT_name        : GetConsoleTask
      DW_AT_name        : SetConsoleTask
      DW_AT_name        : GetFileSysTask
      DW_AT_name        : SetFileSysTask
      DW_AT_name        : GetArgStr
      DW_AT_name        : SetArgStr
      DW_AT_name        : FindCliProc
      DW_AT_name        : MaxCli
      DW_AT_name        : SetCurrentDirName
      DW_AT_name        : GetCurrentDirName
      DW_AT_name        : SetProgramName
      DW_AT_name        : GetProgramName
      DW_AT_name        : SetPrompt
      DW_AT_name        : GetPrompt
      DW_AT_name        : SetProgramDir
      DW_AT_name        : GetProgramDir
      DW_AT_name        : SystemTagList
      DW_AT_name        : System
      DW_AT_name        : SystemTags
      DW_AT_name        : AssignLock
      DW_AT_name        : AssignLate
      DW_AT_name        : AssignPath
      DW_AT_name        : AssignAdd
      DW_AT_name        : RemAssignList
      DW_AT_name        : GetDeviceProc
      DW_AT_name        : FreeDeviceProc
      DW_AT_name        : LockDosList
      DW_AT_name        : UnLockDosList
      DW_AT_name        : AttemptLockDosList
      DW_AT_name        : RemDosEntry
      DW_AT_name        : AddDosEntry
      DW_AT_name        : FindDosEntry
      DW_AT_name        : NextDosEntry
      DW_AT_name        : MakeDosEntry
      DW_AT_name        : FreeDosEntry
      DW_AT_name        : IsFileSystem
      DW_AT_name        : Format
      DW_AT_name        : Relabel
      DW_AT_name        : Inhibit
      DW_AT_name        : AddBuffers
      DW_AT_name        : CompareDates
      DW_AT_name        : DateToStr
      DW_AT_name        : StrToDate
      DW_AT_name        : OBSOLETEInternalLoadSeg
      DW_AT_name        : OBSOLETEInternalUnLoadSeg
      DW_AT_name        : OBSOLETENewLoadSeg
      DW_AT_name        : OBSOLETENewLoadSegTagList
      DW_AT_name        : OBSOLETENewLoadSegTags
      DW_AT_name        : AddSegment
      DW_AT_name        : FindSegment
      DW_AT_name        : RemSegment
      DW_AT_name        : CheckSignal
      DW_AT_name        : ReadArgs
      DW_AT_name        : FindArg
      DW_AT_name        : ReadItem
      DW_AT_name        : StrToLong
      DW_AT_name        : MatchFirst
      DW_AT_name        : MatchNext
      DW_AT_name        : MatchEnd
      DW_AT_name        : ParsePattern
      DW_AT_name        : MatchPattern
      DW_AT_name        : (indirect string, offset: 0xc4): Reserved3
      DW_AT_name        : FreeArgs
      DW_AT_name        : (indirect string, offset: 0x83): Reserved4
      DW_AT_name        : FilePart
      DW_AT_name        : PathPart
      DW_AT_name        : AddPart
      DW_AT_name        : StartNotify
      DW_AT_name        : EndNotify
      DW_AT_name        : SetVar
      DW_AT_name        : GetVar
      DW_AT_name        : DeleteVar
      DW_AT_name        : FindVar
      DW_AT_name        : PRIVATECliInit
      DW_AT_name        : CliInitNewcli
      DW_AT_name        : CliInitRun
      DW_AT_name        : WriteChars
      DW_AT_name        : PutStr
      DW_AT_name        : VPrintf
      DW_AT_name        : Printf
      DW_AT_name        : Reserved5
      DW_AT_name        : ParsePatternNoCase
      DW_AT_name        : MatchPatternNoCase
      DW_AT_name        : PRIVATEDosGetString
      DW_AT_name        : SameDevice
      DW_AT_name        : ExAllEnd
      DW_AT_name        : SetOwner
      DW_AT_name        : GetEntryData
      DW_AT_name        : ReadLineItem
      DW_AT_name        : ReadLineItemTags
      DW_AT_name        : PRIVATEInternalRunCommand
      DW_AT_name        : GetCurrentDir
      DW_AT_name        : NonBlockingModifyDosEntry
      DW_AT_name        : SecondsToDateStamp
      DW_AT_name        : DateStampToSeconds
      DW_AT_name        : FixDateStamp
      DW_AT_name        : AddDates
      DW_AT_name        : SubtractDates
      DW_AT_name        : AddSegmentTagList
      DW_AT_name        : ParseCapturePattern
      DW_AT_name        : CapturePattern
      DW_AT_name        : ReleaseCapturedExpressions
      DW_AT_name        : FindTrackedAddress
      DW_AT_name        : TrackAddressList
      DW_AT_name        : TrackSegmentList
      DW_AT_name        : UnTrackAddress
      DW_AT_name        : UnTrackSegmentList
      DW_AT_name        : GetExitData
      DW_AT_name        : PutErrStr
      DW_AT_name        : ErrorOutput
      DW_AT_name        : SelectErrorOutput
      DW_AT_name        : MountDevice
      DW_AT_name        : MountDeviceTags
      DW_AT_name        : SetProcWindow
      DW_AT_name        : FindSegmentStackSize
      DW_AT_name        : CalculateSegmentChecksum
      DW_AT_name        : AllocSegList
      DW_AT_name        : GetSegListInfo
      DW_AT_name        : GetSegListInfoTags
      DW_AT_name        : AddSegListTail
      DW_AT_name        : DevNameFromLock
      DW_AT_name        : GetProcMsgPort
      DW_AT_name        : WaitForData
      DW_AT_name        : SetBlockingMode
      DW_AT_name        : SetCurrentCmdPathList
      DW_AT_name        : AllocateCmdPathList
      DW_AT_name        : FreeCmdPathList
      DW_AT_name        : RemoveCmdPathNode
      DW_AT_name        : AddCmdPathNode
      DW_AT_name        : SearchCmdPathList
      DW_AT_name        : SearchCmdPathListTags
      DW_AT_name        : ScanVars
      DW_AT_name        : GetProcSegList
      DW_AT_name        : HexToLong
      DW_AT_name        : GetDeviceProcFlags
      DW_AT_name        : DosControl
      DW_AT_name        : DosControlTags
      DW_AT_name        : CreateDirTree
      DW_AT_name        : NotifyVar
      DW_AT_name        : GetDiskFileSystemData
      DW_AT_name        : FreeDiskFileSystemData
      DW_AT_name        : FOpen
      DW_AT_name        : FClose
      DW_AT_name        : FOpenFromLock
      DW_AT_name        : Reserved6
      DW_AT_name        : TimedDosRequester
      DW_AT_name        : TimedDosRequesterTags
      DW_AT_name        : RenameDosEntry
      DW_AT_name        : DismountDevice
      DW_AT_name        : DupFileHandle
      DW_AT_name        : DevNameFromFH
      DW_AT_name        : AssignAddToList
      DW_AT_name        : SetFileHandleAttr
      DW_AT_name        : SetFileHandleAttrTags
      DW_AT_name        : FileSystemAttr
      DW_AT_name        : FileSystemAttrTags
      DW_AT_name        : FReadLine
      DW_AT_name        : CopyStringBSTRToC
      DW_AT_name        : CopyStringCToBSTR
      DW_AT_name        : GetFilePosition
      DW_AT_name        : ChangeFilePosition
      DW_AT_name        : ChangeFileSize
      DW_AT_name        : GetFileSize
      DW_AT_name        : Reserved7
      DW_AT_name        : PRIVATEDoPkt64
      DW_AT_name        : Reserved8
      DW_AT_name        : Reserved9
      DW_AT_name        : Reserved10
      DW_AT_name        : ProcessScan
      DW_AT_name        : NotifyDosListChange
      DW_AT_name        : NotifyProcListChange
      DW_AT_name        : GetDiskInfo
      DW_AT_name        : GetDiskInfoTags
      DW_AT_name        : WriteProtectVolume
      DW_AT_name        : ExamineObject
      DW_AT_name        : ExamineObjectTags
      DW_AT_name        : ExamineDir
      DW_AT_name        : ObtainDirContext
      DW_AT_name        : ObtainDirContextTags
      DW_AT_name        : ReleaseDirContext
      DW_AT_name        : Reserved11
      DW_AT_name        : Reserved12
      DW_AT_name        : Reserved13

Notes

There are interface functions embedded that are not included in the latest OS4 SDK.
There are structures embedded that are not included in the latest OS4 SDK.
The binary does not need to use the new functionality. It merely was built with the -ggdb debug switch which includes DWARF2 debug information for all the structures. This makes any binary built with -ggdb leak the SDK includes it was built with.
 

Offline PiruTopic starter

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show all replies
    • http://www.iki.fi/sintonen/
Re: Extracting OS4.x API information from publicly available executables
« Reply #1 on: July 19, 2008, 06:42:28 PM »
@Hans_

1. http://www.amiga.org/forums/showthread.php?t=47455
2. I don't have an account on aw.net.
3. aw.net has (temporarily?) removed the discussion. [EDIT] It's  back now [/EDIT]
4. aw.net removed a thread linking to this post.
 

Offline PiruTopic starter

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show all replies
    • http://www.iki.fi/sintonen/
Re: Extracting OS4.x API information from publicly available executables
« Reply #2 on: July 19, 2008, 07:16:52 PM »
@xeron

But you agree that it does include things that are not available in the public OS4 SDK?

If that is the case, how could Ilkka possibly know that this new stuff isn't OS 4.1 specific, or meant to be released officially only with OS 4.1 release and the new OS 4.1 SDK?
 

Offline PiruTopic starter

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show all replies
    • http://www.iki.fi/sintonen/
Re: Extracting OS4.x API information from publicly available executables
« Reply #3 on: July 19, 2008, 07:24:24 PM »
@xeron

So can we agree now that Itix isn't:
A) a liar or
B) pirate
?

(He might be a bad guesser though, but who wouldn't have guessed wrong from time to time)