cepluginsdk.pas 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541
  1. unit cepluginsdk; //more an api than sdk
  2. {$MODE Delphi}
  3. interface
  4. uses windows, sysutils;
  5. type
  6. TColor=dword;
  7. PColor=^TColor;
  8. {$ifndef fpc}
  9. //if old delphi then define the ptruint type
  10. type ptruint=dword;
  11. type pptruint=^ptruint'
  12. {$endif}
  13. const PluginVersionSDK=6;
  14. type TAutoAssemblerPhase=(aaInitialize=0, aaPhase1=1, aaPhase2=2, aaFinalize=3);
  15. type TPluginType=(ptAddressList=0, ptMemoryView=1, ptOnDebugEvent=2, ptProcesswatcherEvent=3, ptFunctionPointerchange=4, ptMainMenu=5, ptDisassemblerContext=6, ptDisassemblerRenderLine=7, ptAutoAssembler=8);
  16. type TDWordArray = array[0..0] of DWord;
  17. PDWordArray = ^TDWordArray;
  18. type
  19. TContinueOption = (co_run=0, co_stepinto=1, co_stepover=2, co_runtill=3);
  20. type
  21. TBreakpointMethod = (bpmInt3, bpmDebugRegister);
  22. type
  23. TBreakOption = (bo_Break = 0, bo_ChangeRegister = 1, bo_FindCode = 2, bo_FindWhatCodeAccesses = 3, bo_BreakAndTrace=4);
  24. TBreakPointAction = TBreakOption;
  25. type
  26. TBreakpointTrigger = (bptExecute=0, bptAccess=1, bptWrite=2);
  27. type
  28. tregistermodificationBP32 = record
  29. address: uint_ptr; //addres to break on
  30. change_eax: BOOL;
  31. change_ebx: BOOL;
  32. change_ecx: BOOL;
  33. change_edx: BOOL;
  34. change_esi: BOOL;
  35. change_edi: BOOL;
  36. change_ebp: BOOL;
  37. change_esp: BOOL;
  38. change_eip: BOOL;
  39. change_cf: BOOL;
  40. change_pf: BOOL;
  41. change_af: BOOL;
  42. change_zf: BOOL;
  43. change_sf: BOOL;
  44. change_of: BOOL;
  45. new_eax: dword;
  46. new_ebx: dword;
  47. new_ecx: dword;
  48. new_edx: dword;
  49. new_esi: dword;
  50. new_edi: dword;
  51. new_ebp: dword;
  52. new_esp: dword;
  53. new_eip: dword;
  54. new_cf: BOOL;
  55. new_pf: BOOL;
  56. new_af: BOOL;
  57. new_zf: BOOL;
  58. new_sf: BOOL;
  59. new_of: BOOL;
  60. end;
  61. type
  62. PRegisterModificationBP32 = ^TRegisterModificationBP32;
  63. type
  64. tregistermodificationBP64 = record
  65. address: uint_ptr; //addres to break on
  66. change_eax: BOOL;
  67. change_ebx: BOOL;
  68. change_ecx: BOOL;
  69. change_edx: BOOL;
  70. change_esi: BOOL;
  71. change_edi: BOOL;
  72. change_ebp: BOOL;
  73. change_esp: BOOL;
  74. change_eip: BOOL;
  75. change_r8: BOOL;
  76. change_r9: BOOL;
  77. change_r10: BOOL;
  78. change_r11: BOOL;
  79. change_r12: BOOL;
  80. change_r13: BOOL;
  81. change_r14: BOOL;
  82. change_r15: BOOL;
  83. change_cf: BOOL;
  84. change_pf: BOOL;
  85. change_af: BOOL;
  86. change_zf: BOOL;
  87. change_sf: BOOL;
  88. change_of: BOOL;
  89. new_eax: ptrUint;
  90. new_ebx: ptrUint;
  91. new_ecx: ptrUint;
  92. new_edx: ptrUint;
  93. new_esi: ptrUint;
  94. new_edi: ptrUint;
  95. new_ebp: ptrUint;
  96. new_esp: ptrUint;
  97. new_eip: ptrUint;
  98. new_r8: ptrUint;
  99. new_r9: ptrUint;
  100. new_r10: ptrUint;
  101. new_r11: ptrUint;
  102. new_r12: ptrUint;
  103. new_r13: ptrUint;
  104. new_r14: ptrUint;
  105. new_r15: ptrUint;
  106. new_cf: BOOL;
  107. new_pf: BOOL;
  108. new_af: BOOL;
  109. new_zf: BOOL;
  110. new_sf: BOOL;
  111. new_of: BOOL;
  112. end;
  113. type
  114. PRegisterModificationBP64 = ^TRegisterModificationBP64;
  115. {$ifdef CPU64}
  116. type
  117. TRegisterModificationBP = TRegisterModificationBP64;
  118. type
  119. PRegisterModificationBP = PRegisterModificationBP64;
  120. {$else}
  121. type
  122. TRegisterModificationBP = TRegisterModificationBP32;
  123. type
  124. PRegisterModificationBP = PRegisterModificationBP32;
  125. {$endif}
  126. type TSelectedRecord=record
  127. interpretedaddress: pchar; //pointer to a 255 bytes long string (0 terminated)
  128. address: ptruint; //this is a read-only representaion of the address. Change interpretedaddress if you want to change this
  129. ispointer: boolean;
  130. countoffsets: integer;
  131. offsets: PDWordArray; //pointer to a array of dwords randing from 0 to countoffsets-1
  132. description: pchar; //pointer to a 255 bytes long string
  133. valuetype: byte;
  134. size: byte; //stringlenth or bitlength (max 255);
  135. end;
  136. type PSelectedRecord=^TSelectedRecord;
  137. //callback function declarations:
  138. type TPlugin0_SelectedRecord=record
  139. interpretedaddress: pchar; //pointer to a 255 bytes long string (0 terminated)
  140. address: dword; //this is a read-only representaion of the address. Change interpretedaddress if you want to change this
  141. ispointer: BOOL; //readonly
  142. countoffsets: integer; //readonly
  143. offsets: PDWordArray; //pointer to a array of dwords randing from 0 to countoffsets-1 (readonly)
  144. description: pchar; //pointer to a 255 bytes long string
  145. valuetype: byte;
  146. size: byte; //stringlenth or bitlength (max 255);
  147. end;
  148. type PPlugin0_SelectedRecord=^TPlugin0_SelectedRecord;
  149. type TPluginfunction0=function(selectedrecord: PPlugin0_SelectedRecord):bool; stdcall;
  150. type TPluginfunction1=function(disassembleraddress: pptruint; selected_disassembler_address: pptruint; hexviewaddress:pptruint ):bool; stdcall;
  151. type TPluginFunction2=function(debugevent: PDebugEvent):integer; stdcall;
  152. type TPluginFunction3=function(processid: dword; peprocess:ptruint; created: BOOL):integer; stdcall;
  153. type TPluginFunction4=function(section: integer):boolean; stdcall;
  154. type TPluginfunction5=procedure; stdcall;
  155. type TPluginfunction6OnPopup=function(selectedAddress: ptruint; addressofname: pointer; show: pbool):bool; stdcall;
  156. type TPluginfunction6=function(selectedAddress: pptruint):bool; stdcall;
  157. type TPluginFunction7=procedure(address: ptruint; addressStringPointer: pointer; bytestringpointer: pointer; opcodestringpointer: pointer; specialstringpointer: pointer; textcolor: PColor); stdcall;
  158. type TPluginFunction8=procedure(line: ppchar; phase: TAutoAssemblerPhase; id:integer); stdcall;
  159. type Tfunction0=record
  160. name: pchar;
  161. callbackroutine: pointer;
  162. end;
  163. type Tfunction1=record
  164. name: pchar;
  165. callbackroutine: TPluginfunction1;
  166. shortcut: pchar;
  167. end;
  168. type Tfunction2=record
  169. callbackroutine: pointer;
  170. end;
  171. type Tfunction6=record
  172. name: pchar;
  173. callbackroutine: pointer;
  174. callbackroutineOnContext: pointer;
  175. shortcut: pchar;
  176. end;
  177. type TFunction3=TFunction2;
  178. type TFunction4=TFunction2;
  179. type TFunction5=record
  180. name: pchar;
  181. callbackroutine: TPluginfunction5;
  182. shortcut: pchar;
  183. end;
  184. type TFunction7=TFunction2;
  185. type TFunction8=TFunction2;
  186. type PFunction0=^TFunction0;
  187. type PFunction1=^TFunction1;
  188. type PFunction2=^TFunction2;
  189. type PFunction3=^TFunction3;
  190. type PFunction4=^TFunction4;
  191. type PFunction5=^TFunction5;
  192. type PFunction6=^TFunction6;
  193. type PFunction7=^TFunction7;
  194. type PFunction8=^TFunction8;
  195. type Tce_showmessage=procedure (s: pchar); stdcall;
  196. type Tce_registerfunction=function (pluginid: integer; functiontype:TPluginType; init: pointer):integer; stdcall;
  197. type Tce_unregisterfunction=function (pluginid,functionid: integer): BOOL; stdcall;
  198. type Tce_AutoAssembler=function (s: pchar):BOOL; stdcall;
  199. type Tce_assembler=function(address:ptruint; instruction: pchar; output: PByteArray; maxlength: integer; actualsize: pinteger):BOOL; stdcall;
  200. type Tce_disassembler=function(address: ptruint; output: pchar; maxsize: integer): BOOL; stdcall;
  201. type Tce_ChangeRegistersAtAddress=function(address:ptruint; changereg: pregistermodificationBP):BOOL; stdcall;
  202. type Tce_InjectDLL=function(dllname: pchar; functiontocall: pchar):BOOL; stdcall;
  203. type Tce_freezemem= function (address: ptruint; size: integer):integer; stdcall;
  204. type Tce_unfreezemem =function (id: integer):BOOL; stdcall;
  205. //type Tce_fixmem=function:BOOL; stdcall; //obsolete, don't use it
  206. type Tce_processlist=function(listbuffer: pchar; listsize: integer):BOOL; stdcall;
  207. type Tce_reloadsettings=function:BOOL; stdcall;
  208. type Tce_getaddressfrompointer=function(baseaddress: ptruint; offsetcount: integer; offsets: PDwordArray):dword; stdcall;
  209. type Tce_generateAPIHookScript=function(address, addresstojumpto, addresstogetnewcalladdress: string; script: pchar; maxscriptsize: integer): BOOL; stdcall;
  210. type Tce_sym_addressToName=function(address:ptruint; name: pchar; maxnamesize: integer):BOOL; stdcall;
  211. type Tce_sym_nameToAddress=function(name: pchar; address: Pptruint):BOOL; stdcall;
  212. type Tce_GetMainWindowHandle=function:thandle; stdcall;
  213. type TReadProcessMemory=function (hProcess: THandle; const lpBaseAddress: Pointer; lpBuffer: Pointer;
  214. nSize: DWORD; var lpNumberOfBytesRead: DWORD): BOOL; stdcall;
  215. type TWriteProcessMemory=function (hProcess: THandle; const lpBaseAddress: Pointer; lpBuffer: Pointer;
  216. nSize: DWORD; var lpNumberOfBytesWritten: DWORD): BOOL; stdcall;
  217. type TGetProcessNameFromPEProcess=function(peprocess:ptruint; buffer:pchar;buffersize:dword):integer; stdcall;
  218. type TOpenProcess=function(dwDesiredAccess: DWORD; bInheritHandle: BOOL; dwProcessId: DWORD): THandle; stdcall;
  219. type TLoadDBK32=procedure; stdcall;
  220. type TLoadDBVMifneeded=function: BOOL; stdcall;
  221. type TPreviousOpcode=function(address:ptruint): dword; stdcall;
  222. type TNextOpcode=function(address:ptruint): dword; stdcall;
  223. type TloadModule=function(modulepath: pchar; exportlist: pchar; maxsize: pinteger): BOOL; stdcall;
  224. type TDisassembleEx=function(address: pptruint; output: pchar; maxsize: integer): BOOL; stdcall;
  225. type Taa_AddExtraCommand=procedure(command:pchar);
  226. type Taa_RemoveExtraCommand=procedure(command:pchar);
  227. //version 4 functiontype declarations
  228. type TcreateTableEntry=function: pointer; stdcall;
  229. type TgetTableEntry=function(description: pchar): pointer; stdcall;
  230. type Tmemrec_setDescription=function(memrec: pointer; description: pchar): BOOL; stdcall;
  231. type Tmemrec_getDescription=function(memrec: pointer): pchar; stdcall;
  232. type Tmemrec_getAddress=function(memrec: pointer; address: pptruint; offsets: PDwordArray; maxoffsets: integer; neededOffsets: pinteger): BOOL; stdcall;
  233. type Tmemrec_setAddress=function(memrec: pointer; address: pchar; offsets: PDwordArray; offsetcount: integer): BOOL; stdcall;
  234. type Tmemrec_getType=function(memrec: pointer): integer; stdcall;
  235. type Tmemrec_setType=function(memrec: pointer; vtype: integer): BOOL; stdcall;
  236. type Tmemrec_getValue=function(memrec: pointer; value: pchar; maxsize: integer): BOOL; stdcall;
  237. type Tmemrec_setValue=function(memrec: pointer; value: pchar): BOOL; stdcall;
  238. type Tmemrec_getScript=function(memrec: pointer): pchar; stdcall;
  239. type Tmemrec_setScript=function(memrec: pointer; script: pchar): BOOL; stdcall;
  240. type Tmemrec_isFrozen=function(memrec: pointer): BOOL; stdcall;
  241. type Tmemrec_freeze=function(memrec: pointer; direction: integer): BOOL; stdcall;
  242. type Tmemrec_unfreeze=function(memrec: pointer): BOOL; stdcall;
  243. type Tmemrec_setColor=function(memrec: pointer; color: TColor): BOOL; stdcall;
  244. type Tmemrec_appendtoentry=function(memrec1: pointer; memrec2: pointer): BOOL; stdcall;
  245. type Tmemrec_delete=function(memrec: pointer): BOOL; stdcall;
  246. type TgetProcessIDFromProcessName=function(name: pchar): DWORD; stdcall;
  247. type TopenProcessex=function(pid: dword): BOOL; stdcall;
  248. type TdebugProcessex=function(debuggerinterface: integer): BOOL; stdcall;
  249. type Tpause=procedure; stdcall;
  250. type Tunpause=procedure; stdcall;
  251. type Tdebug_setBreakpoint=function(address: ptruint; size: integer; trigger: TBreakpointTrigger): BOOL; stdcall;
  252. type Tdebug_removeBreakpoint=function(address: ptruint): BOOL; stdcall;
  253. type Tdebug_continueFromBreakpoint=function(ContinueOption: TContinueOption): BOOL; stdcall;
  254. type TcloseCE=procedure; stdcall;
  255. type ThideAllCEWindows=procedure; stdcall;
  256. type TunhideMainCEwindow=procedure; stdcall;
  257. type TcreateForm=function(visible: boolean): pointer; stdcall;
  258. type Tform_centerScreen=procedure(f: pointer); stdcall;
  259. type Tform_hide=procedure(f: pointer); stdcall;
  260. type Tform_show=procedure(f: pointer); stdcall;
  261. type Tform_onClose=procedure(frm: pointer; f: pointer); stdcall;
  262. type TcreatePanel=function(owner: pointer): pointer; stdcall;
  263. type TcreateGroupBox=function(owner: pointer): pointer; stdcall;
  264. type TcreateButton=function(owner: pointer): pointer; stdcall;
  265. type TcreateImage=function(owner: pointer): pointer; stdcall;
  266. type Timage_loadImageFromFile=function(image: pointer; filename: pchar): BOOL; stdcall;
  267. type Timage_transparent=procedure(image: pointer; transparent: boolean); stdcall;
  268. type Timage_stretch=procedure(image: pointer; stretch: boolean); stdcall;
  269. type TcreateLabel=function(owner: pointer): pointer; stdcall;
  270. type TcreateEdit=function(owner: pointer): pointer; stdcall;
  271. type TcreateMemo=function(owner: pointer): pointer; stdcall;
  272. type TcreateTimer=function(owner: pointer): pointer; stdcall;
  273. type Ttimer_setInterval=procedure(timer: pointer; interval: integer); stdcall;
  274. type Ttimer_onTimer=procedure(t: pointer; f: pointer); stdcall;
  275. type Tcontrol_setCaption=procedure(control: pointer; caption: pchar); stdcall;
  276. type Tcontrol_getCaption=function(control: pointer; caption: pchar; maxsize: integer): BOOL; stdcall;
  277. type Tcontrol_setPosition=procedure(control: pointer; x,y: integer); stdcall;
  278. type Tcontrol_getX=function(control: pointer): integer; stdcall;
  279. type Tcontrol_getY=function(control: pointer): integer; stdcall;
  280. type Tcontrol_setSize=procedure(control: pointer; width,height: integer); stdcall;
  281. type Tcontrol_getWidth=function(control: pointer): integer; stdcall;
  282. type Tcontrol_getHeight=function(control: pointer): integer; stdcall;
  283. type Tcontrol_setAlign=procedure(control: pointer; align: integer); stdcall;
  284. type Tcontrol_onClick=procedure(c: pointer; f: pointer); stdcall;
  285. type Tobject_destroy=procedure(o: pointer); stdcall;
  286. type TmessageDialog=function(message: pchar; messagetype: integer; buttoncombination: integer): integer; stdcall;
  287. type Tspeedhack_setSpeed=function(speed: single): BOOL; stdcall;
  288. type TUserdefinedInterruptHook=function(interruptnr: integer; newCS: word; newEIP: system.qword; addressofjumpback: system.qword):boolean; stdcall;
  289. type TExecuteKernelCode=function(address: system.qword; parameters: system.qword): BOOL; stdcall;
  290. type TGetLoadedState=function: BOOLEAN; stdcall;
  291. type TGetLuaState=function: pointer; stdcall;
  292. type TPluginFunc=function(parameters: pointer): pointer; //note, no stdcall. It's a "pascal" calling convention
  293. type TMainThreadCall=function(func: TPluginFunc; parameters: pointer): pointer; stdcall;
  294. type TPluginVersion =record
  295. version : integer; //write here the minimum version this dll is compatible with
  296. pluginname: pchar; //make this point to a 0-terminated string (allocated memory, not stack)
  297. end;
  298. type TExportedFunctions = record
  299. sizeofTExportedFunctions: integer;
  300. showmessage: Tce_showmessage;
  301. registerfunction: Tce_registerfunction;
  302. unregisterfunction: Tce_unregisterfunction;
  303. OpenedProcessID: ^dword;
  304. OpenedProcessHandle: ^thandle;
  305. GetMainWindowHandle: pointer;
  306. AutoAssemble: Tce_AutoAssembler;
  307. //this is just an example plugin, fill theswe missing function pointers in yourself ok...
  308. assembler: Tce_assembler;
  309. disassembler: Tce_disassembler;
  310. ChangeRegistersAtAddress: Tce_ChangeRegistersAtAddress;
  311. InjectDLL: Tce_InjectDLL;
  312. freezemem: Tce_freezemem;
  313. unfreezemem: Tce_unfreezemem;
  314. fixmem: pointer;
  315. processlist: Tce_processlist;
  316. reloadsettings: Tce_reloadsettings;
  317. getaddressfrompointer: Tce_getaddressfrompointer;
  318. //pointers to the address that contains the pointers to the functions
  319. ReadProcessMemory :pointer;
  320. WriteProcessMemory :pointer;
  321. GetThreadContext :pointer;
  322. SetThreadContext :pointer;
  323. SuspendThread :pointer;
  324. ResumeThread :pointer;
  325. OpenProcess :pointer;
  326. WaitForDebugEvent :pointer;
  327. ContinueDebugEvent :pointer;
  328. DebugActiveProcess :pointer;
  329. StopDebugging :pointer;
  330. StopRegisterChange :pointer;
  331. VirtualProtect :pointer;
  332. VirtualProtectEx :pointer;
  333. VirtualQueryEx :pointer;
  334. VirtualAllocEx :pointer;
  335. CreateRemoteThread :pointer;
  336. OpenThread :pointer;
  337. GetPEProcess :pointer;
  338. GetPEThread :pointer;
  339. GetThreadsProcessOffset:pointer;
  340. GetThreadListEntryOffset:pointer;
  341. GetProcessnameOffset :pointer;
  342. GetDebugportOffset :pointer;
  343. GetPhysicalAddress :pointer;
  344. ProtectMe :pointer;
  345. GetCR4 :pointer;
  346. GetCR3 :pointer;
  347. SetCR3 :pointer;
  348. GetSDT :pointer;
  349. GetSDTShadow :pointer;
  350. setAlternateDebugMethod: pointer;
  351. getAlternateDebugMethod: pointer;
  352. DebugProcess :pointer;
  353. ChangeRegOnBP :pointer;
  354. RetrieveDebugData :pointer;
  355. StartProcessWatch :pointer;
  356. WaitForProcessListData:pointer;
  357. GetProcessNameFromID :pointer;
  358. GetProcessNameFromPEProcess:pointer;
  359. KernelOpenProcess :pointer;
  360. KernelReadProcessMemory :pointer;
  361. KernelWriteProcessMemory:pointer;
  362. KernelVirtualAllocEx :pointer;
  363. IsValidHandle :pointer;
  364. GetIDTCurrentThread :pointer;
  365. GetIDTs :pointer;
  366. MakeWritable :pointer;
  367. GetLoadedState :TGetLoadedState;
  368. DBKSuspendThread :pointer;
  369. DBKResumeThread :pointer;
  370. DBKSuspendProcess :pointer;
  371. DBKResumeProcess :pointer;
  372. KernelAlloc :pointer;
  373. GetKProcAddress :pointer;
  374. CreateToolhelp32Snapshot:pointer;
  375. Process32First :pointer;
  376. Process32Next :pointer;
  377. Thread32First :pointer;
  378. Thread32Next :pointer;
  379. Module32First :pointer;
  380. Module32Next :pointer;
  381. Heap32ListFirst :pointer;
  382. Heap32ListNext :pointer;
  383. //advanced for delphi 7 enterprise dll programmers only
  384. mainform :pointer;
  385. memorybrowser :pointer;
  386. //version 2 extension:
  387. sym_nameToAddress : Tce_sym_NameToAddress;
  388. sym_addressToName : Tce_sym_addressToName;
  389. ce_generateAPIHookScript : Tce_generateAPIHookScript;
  390. //version 3
  391. loadDBK32 : TLoadDBK32;
  392. loaddbvmifneeded : TLoadDBVMifneeded;
  393. previousOpcode : TPreviousOpcode;
  394. nextopcode : TNextOpcode;
  395. disassembleEx : TDisassembleEx;
  396. loadModule : TloadModule;
  397. aa_AddExtraCommand: Taa_AddExtraCommand;
  398. aa_RemoveExtraCommand:Taa_RemoveExtraCommand;
  399. //version 4 extension
  400. createTableEntry: TcreateTableEntry;
  401. getTableEntry: TgetTableEntry;
  402. memrec_setDescription: Tmemrec_setDescription;
  403. memrec_getDescription: Tmemrec_getDescription;
  404. memrec_getAddress: Tmemrec_getAddress;
  405. memrec_setAddress: Tmemrec_setAddress;
  406. memrec_getType: Tmemrec_getType;
  407. memrec_setType: Tmemrec_setType;
  408. memrec_getValue: Tmemrec_getValue;
  409. memrec_setValue: Tmemrec_setValue;
  410. memrec_getScript: Tmemrec_getScript;
  411. memrec_setScript: Tmemrec_setScript;
  412. memrec_isfrozen: Tmemrec_isfrozen;
  413. memrec_freeze: Tmemrec_freeze;
  414. memrec_unfreeze: Tmemrec_unfreeze;
  415. memrec_setColor: Tmemrec_setColor;
  416. memrec_appendtoentry: Tmemrec_appendtoentry;
  417. memrec_delete: Tmemrec_delete;
  418. getProcessIDFromProcessName: TgetProcessIDFromProcessName;
  419. openProcessEx: TopenProcessEx;
  420. debugProcessEx: TdebugProcessEx;
  421. pause: Tpause;
  422. unpause: Tunpause;
  423. debug_setBreakpoint: Tdebug_setBreakpoint;
  424. debug_removeBreakpoint: Tdebug_removeBreakpoint;
  425. debug_continueFromBreakpoint: Tdebug_continueFromBreakpoint;
  426. closeCE: TcloseCE;
  427. hideAllCEWindows: ThideAllCEWindows;
  428. unhideMainCEwindow: TunhideMainCEwindow;
  429. createForm: TcreateForm;
  430. form_centerScreen: Tform_centerScreen;
  431. form_hide: Tform_hide;
  432. form_show: Tform_show;
  433. form_onClose: Tform_onClose;
  434. createPanel: TcreatePanel;
  435. createGroupBox: TcreateGroupBox;
  436. createButton: TcreateButton;
  437. createImage: TcreateImage;
  438. image_loadImageFromFile: Timage_loadImageFromFile;
  439. image_transparent: Timage_transparent;
  440. image_stretch: Timage_stretch;
  441. createLabel: TcreateLabel;
  442. createEdit: TcreateEdit;
  443. createMemo: TcreateMemo;
  444. createTimer: TcreateTimer;
  445. timer_setInterval: Ttimer_setInterval;
  446. timer_onTimer: Ttimer_onTimer;
  447. control_setCaption: Tcontrol_setCaption;
  448. control_getCaption: Tcontrol_getCaption;
  449. control_setPosition: Tcontrol_setPosition;
  450. control_getX: Tcontrol_getX;
  451. control_getY: Tcontrol_getY;
  452. control_setSize: Tcontrol_setSize;
  453. control_getWidth: Tcontrol_getWidth;
  454. control_getHeight: Tcontrol_getHeight;
  455. control_setAlign: Tcontrol_setAlign;
  456. control_onClick: Tcontrol_onClick;
  457. object_destroy: Tobject_destroy;
  458. messageDialog: TmessageDialog;
  459. speedhack_setSpeed: Tspeedhack_setSpeed;
  460. //version 5
  461. ExecuteKernelCode: TExecuteKernelCode;
  462. UserdefinedInterruptHook: TUserdefinedInterruptHook;
  463. GetLuaState: TGetLuaState;
  464. MainThreadCall: TMainThreadCall;
  465. end;
  466. type PExportedFunctions=^TExportedFunctions;
  467. implementation
  468. end.