;******************************************************************************************************************************** ;* * ;* File: CoreLibrary.asm * ;* * ;* This file defines the library for accessing functions of PwnOS. * ;* * ;* See Also: * ;* - * ;* * ;* Authors: * ;* - Neil G. Dickson * ;* * ;******************************************************************************************************************************** .686 .xmm .model flat,stdcall include CoreLibrary.inc .code LibraryMain proc hLibrary:DWORD,reason:DWORD,reserved:DWORD ret LibraryMain endp CreateProcess proc pName:DWORD,DataSize:DWORD,pData:DWORD,Flags:DWORD CALL_CORE CG_CREATE_PROCESS,pName,DataSize,pData,Flags ret CreateProcess endp DestroyProcess proc pProcess:DWORD CALL_CORE CG_DESTROY_PROCESS,pProcess ret DestroyProcess endp ExitProcess proc ReturnCode:DWORD CALL_CORE CG_EXIT_PROCESS,ReturnCode ret ExitProcess endp GetCurrentProcess proc CALL_CORE CG_GET_CURRENT_PROCESS ret GetCurrentProcess endp CreateThread proc StartAddress:DWORD,StackSize:DWORD,Flags:DWORD,Parameter:DWORD CALL_CORE CG_CREATE_THREAD,StartAddress,StackSize,Flags,Parameter ret CreateThread endp DestroyThread proc pThread:DWORD CALL_CORE CG_DESTROY_THREAD,pThread ret DestroyThread endp PauseThread proc pThread:DWORD CALL_CORE CG_PAUSE_THREAD,pThread ret PauseThread endp ResumeThread proc pThread:DWORD CALL_CORE CG_RESUME_THREAD,pThread ret ResumeThread endp GetCurrentThread proc CALL_CORE CG_GET_CURRENT_THREAD ret GetCurrentThread endp SleepThread proc pThread:DWORD,Milliseconds:DWORD CALL_CORE CG_SLEEP_THREAD,pThread,Milliseconds ret SleepThread endp ScheduleThread proc pThread:DWORD,StartAddress:DWORD,Parameter:DWORD,Milliseconds:DWORD CALL_CORE CG_SCHEDULE_THREAD,pThread,StartAddress,Parameter,Milliseconds ret ScheduleThread endp GetLock proc pLock:DWORD CALL_CORE CG_GET_LOCK,pLock ret GetLock endp ReleaseLock proc pLock:DWORD CALL_CORE CG_RELEASE_LOCK,pLock ret ReleaseLock endp AttemptGetLock proc pLock:DWORD,Milliseconds:DWORD CALL_CORE CG_ATTEMPT_GET_LOCK,pLock,Milliseconds ret AttemptGetLock endp WaitForNotify proc pLock:DWORD CALL_CORE CG_WAIT_FOR_NOTIFY,pLock ret WaitForNotify endp AttemptWaitForNotify proc pLock:DWORD,Milliseconds:DWORD CALL_CORE CG_ATTEMPT_WAIT_FOR_NOTIFY,pLock,Milliseconds ret AttemptWaitForNotify endp Notify proc pLock:DWORD CALL_CORE CG_NOTIFY,pLock ret Notify endp NotifyAll proc pLock:DWORD CALL_CORE CG_NOTIFY_ALL,pLock ret NotifyAll endp OpenFile proc pName:DWORD,Access:DWORD,Creation:DWORD,Flags:DWORD CALL_CORE CG_OPEN_FILE,pName,Access,Creation,Flags ret OpenFile endp GetFileSize proc pFile:DWORD CALL_CORE CG_GET_FILE_SIZE,pFile ret GetFileSize endp ReadFile proc pFile:DWORD,pDestination:DWORD,nBytes:DWORD CALL_CORE CG_READ_FILE,pFile,pDestination,nBytes ret ReadFile endp WriteFile proc pFile:DWORD,pSource:DWORD,nBytes:DWORD CALL_CORE CG_WRITE_FILE,pFile,pSource,nBytes ret WriteFile endp CloseFile proc pFile:DWORD CALL_CORE CG_CLOSE_FILE,pFile ret CloseFile endp END LibraryMain