{"id":22194126,"url":"https://github.com/delphilite/beaenginedelphi","last_synced_at":"2026-01-05T21:37:22.864Z","repository":{"id":27645270,"uuid":"31130137","full_name":"delphilite/BeaEngineDelphi","owner":"delphilite","description":"BeaEngine Disassembler Library Binding for Delphi","archived":false,"fork":false,"pushed_at":"2024-10-07T08:07:22.000Z","size":3401,"stargazers_count":42,"open_issues_count":1,"forks_count":20,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-01-30T01:41:50.485Z","etag":null,"topics":["delphi","delphinuspackage","disassembler","dissassembler","pascal","reverse-enginnering","x86","x86-64"],"latest_commit_sha":null,"homepage":"","language":"Pascal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/delphilite.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-02-21T15:43:03.000Z","updated_at":"2024-12-14T00:02:30.000Z","dependencies_parsed_at":"2024-06-11T19:56:17.780Z","dependency_job_id":"fa031120-a3e6-40d9-9980-63a64acc64cf","html_url":"https://github.com/delphilite/BeaEngineDelphi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/delphilite%2FBeaEngineDelphi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/delphilite%2FBeaEngineDelphi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/delphilite%2FBeaEngineDelphi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/delphilite%2FBeaEngineDelphi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/delphilite","download_url":"https://codeload.github.com/delphilite/BeaEngineDelphi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245353853,"owners_count":20601441,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["delphi","delphinuspackage","disassembler","dissassembler","pascal","reverse-enginnering","x86","x86-64"],"created_at":"2024-12-02T13:11:31.946Z","updated_at":"2026-01-05T21:37:22.859Z","avatar_url":"https://github.com/delphilite.png","language":"Pascal","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BeaEngineDelphi\n![Version](https://img.shields.io/badge/version-v5.3.0-yellow.svg)\n![License](https://img.shields.io/github/license/delphilite/BeaEngineDelphi)\n![Lang](https://img.shields.io/github/languages/top/delphilite/BeaEngineDelphi.svg)\n![stars](https://img.shields.io/github/stars/delphilite/BeaEngineDelphi.svg)\n\nBeaEngineDelphi is a [Delphi](http://www.embarcadero.com/products/delphi) and [Free Pascal](https://www.freepascal.org/) binding for the [BeaEngine](https://github.com/BeaEngine/beaengine/). It supports BeaEngine and provides a friendly and simple type-safe API that is ridiculously easy to learn and quick to pick up.\n\nBeaEngine is a C library designed to decode instructions from 16 bits, 32 bits and 64 bits intel architectures. It includes standard instructions set and instructions set from FPU, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, VMX, CLMUL, AES, MPX, AVX, AVX2, AVX512 (VEX \u0026 EVEX prefixes), CET, BMI1, BMI2, SGX, UINTR, KL, TDX and AMX extensions. If you want to analyze malicious codes and more generally obfuscated codes, BeaEngine sends back a complex structure that describes precisely the analyzed instructions.\n\n## Features\n* **Supports** BeaEngine 5, x16 bits, x32 bits and x64 bits intel architectures.\n* **Supports** Delphi XE2 and greater, and FPC 3 and greater.\n* **Supports** Static libraries: i386-win32, x86_64-win64, i386-linux, x86_64-linux, arm-linux, aarch64-linux, x86_64-darwin, aarch64-darwin, arm-android, aarch64-android, loongarch64-linux.\n* **Supports** Dynamic libraries: i386-win32, x86_64-win64, x86_64-darwin, aarch64-darwin.\n\n## Installation: Manual\nTo install the BeaEngineDelphi binding, follow these steps:\n\n1. Clone the repository:\n    ```sh\n    git clone https://github.com/delphilite/BeaEngineDelphi.git\n    ```\n\n2. Add the BeaEngineDelphi\\Source directory to the project or IDE's search path.\n\n## Installation: Delphinus-Support\nBeaEngineDelphi should now be listed in [Delphinus package manager](https://github.com/Memnarch/Delphinus/wiki/Installing-Delphinus).\n\nBe sure to restart Delphi after installing via Delphinus otherwise the units may not be found in your test projects.\n\n## Usage\nIncluded is the wrapper record `TDisasm` in `BeaEngineDelphi.pas`. The example bellow is incomplete, but it may give you an impression how to use it.\n\n```pas\nuses\n  SysUtils, BeaEngineDelphi;\n\nprocedure DisAsmFunctionCode(const AFunc: Pointer);\nvar\n  aDisasm: TDisasm;\n  nLen: LongWord;\n  pData: PByte;\n  B, S: string;\nbegin\n  FillChar(aDisasm, SizeOf(TDISASM), 0);\n  aDisasm.EIP := UIntPtr(AFunc);\n{$IFDEF CPUX64}\n  aDisasm.Archi := ARCHI_X64;\n{$ELSE}\n  aDisasm.Archi := ARCHI_X32;\n{$ENDIF}\n  aDisasm.Options := NoTabulation + MasmSyntax;\n  pData := PByte(AFunc);\n  repeat\n    nLen := Disasm(aDisasm);\n    B := BufferToHex(pData, nLen);\n    S := Format('%.8x %-16s %s', [aDisasm.EIP, B, aDisasm.CompleteInstr]);\n    Writeln(S);\n    aDisasm.EIP := aDisasm.EIP + nLen;\n    Inc(pData, nLen);\n  until (aDisasm.Instruction.Opcode = OPCODE_RET) or (nLen \u003c= 0);\nend;\n\nbegin\n  try\n    WriteLn('BeaEngine: ', BeaEngineVersionInfo, ', DisAsm ExpandFileNameCase ...');\n    WriteLn('');\n    DisAsmFunctionCode(@SysUtils.ExpandFileNameCase);\n    WriteLn('');\n    WriteLn('Done.');\n  except\n    on E: Exception do\n      WriteLn('Error Decompiler: ', E.Message);\n  end;\n  ReadLn;\nend.\n```\n\nFor more examples based on low-level API, refer to the test cases under the demos directory.\n\n## Documentation\nFor more detailed information, refer to the [BeaEngine documentation](https://github.com/BeaEngine/beaengine/blob/master/doc/beaengine.md).\n\n## Contributing\nContributions are welcome! Please fork this repository and submit pull requests with your improvements.\n\n## License\nThis project is licensed under the Mozilla Public License 2.0. See the [LICENSE](LICENSE) file for details.\n\n## Acknowledgements\nSpecial thanks to the BeaEngine development team for creating and maintaining the BeaEngine.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdelphilite%2Fbeaenginedelphi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdelphilite%2Fbeaenginedelphi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdelphilite%2Fbeaenginedelphi/lists"}