{"id":24289111,"url":"https://github.com/keowu/sourceengineexplorer","last_synced_at":"2026-05-08T08:34:45.679Z","repository":{"id":117438209,"uuid":"545202428","full_name":"keowu/sourceengineexplorer","owner":"keowu","description":"A CS Source Engine² for Creating Cheat/Trainers, Debug Valve Code, Exploring hidden game engine features, Exploit Develop, Assembly Analyzer, Network Emulator, Custom Scripting Interface for study and Cloud-based Decompiler for testing (and binary analysis).","archived":false,"fork":false,"pushed_at":"2022-10-04T01:31:49.000Z","size":7119,"stargazers_count":17,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-06T01:24:51.068Z","etag":null,"topics":["cheat","counter-strike","disassembler","engine","hacking","ida-pro"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/keowu.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":"2022-10-04T00:41:21.000Z","updated_at":"2025-02-06T20:48:56.000Z","dependencies_parsed_at":"2023-05-23T00:30:52.668Z","dependency_job_id":null,"html_url":"https://github.com/keowu/sourceengineexplorer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/keowu/sourceengineexplorer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keowu%2Fsourceengineexplorer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keowu%2Fsourceengineexplorer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keowu%2Fsourceengineexplorer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keowu%2Fsourceengineexplorer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keowu","download_url":"https://codeload.github.com/keowu/sourceengineexplorer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keowu%2Fsourceengineexplorer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32773220,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["cheat","counter-strike","disassembler","engine","hacking","ida-pro"],"created_at":"2025-01-16T10:51:24.318Z","updated_at":"2026-05-08T08:34:45.610Z","avatar_url":"https://github.com/keowu.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eThe Kurumi Source Engine, explorer Engine\u003c/h1\u003e\n\n\u003cimg src=\"https://github.com/keowu/sourceengineexplorer/blob/main/pics/1.png?raw=true\"\u003e\n\n\u003ch3 align=\"center\"\u003eSimplified description of the project objective\u003c/h3\u003e\n\n\u003e A CS Source Engine² for creating cheat debug valve codes, exploring hidden game engine features, exploit development, assembly analyzer or a full network emulator, a custom scripting interface for study and cloud-based decompiler for testing (and binary analysis), think about it maybe as a basis for you to make your own tool, or use it however you want, after all it exists for studies.\n\n\u003e ! This project was created just for portfolio so I don't guarantee there will be updates and I can discontinue whenever I want.\n\n\u003cimg src=\"https://github.com/keowu/sourceengineexplorer/blob/main/pics/2.png?raw=true\" width=\"6912\" height=\"400\"\u003e\n\n\u003ch3 align=\"center\"\u003eProject features\u003c/h3\u003e\n\n- Network emulator\n- Intercept encrypted logs and network traffic\n- Intercept game and developer logs and hidden logs(Vac, Feedback and game crash/stuck)\n- Draw on the game's own interface with their own API\n- A custom injector based on syscall (know what you are doing first)\n- Send your own network packets\n- Modify network packages\n- Store logs of captured or emulator packages for private analysis\n- Use all processor cores for processing\n- Own scripting systems that are easy to understand and learn\n- Possibility of Disassembler by Address, Pattern, All .text section or all binary sections.\n- Possibility of using a cloud-based decompiler provided by me for my own tests.\n- Possibility to create patches in specific regions based on patterns or addresses using the scripting system.\n- Possibility to remove and restore patch in specific regions applied.\n- Possibility to disable or enable patches\n- Possibility to download patches from other shared users to use\n- Other functions that I want to apply or that someone contributes or improves.\n\n\u003cimg src=\"https://github.com/keowu/sourceengineexplorer/blob/main/pics/3.png?raw=true\" width=\"6912\" height=\"400\"\u003e\n\n\u003ch3 align=\"center\"\u003eScripting system\u003c/h3\u003e\n\n\u003e The scripting language used was nicknamed by a friend of Kurumi Lang, with it it is possible to customize several tasks that the application must perform, new features may appear in the future, so I will introduce you a little about this scripting language\n\n\u003cp\u003eLet's assume you want to get the main executable from memory, hl2.exe, there are several ways to do this, so that you don't have to use external ways you can use the following script:\u003c/p\u003e\n\n```\n  IMGBASE(\"hl2.exe\")\n```\n\n\u003cp\u003eWith this, the base of the image will be automatically returned in memory, but let's suppose now that I had my IDA open and out of nowhere I found an instruction that checks the RVA 0x1234, I don't need to keep adding the address there is a much more process easy thanks to the scripting system, but before this use we use the concatenation symbol that tells the script that it must join both values, for example:\u003c/p\u003e\n\n```\n  IMGBASE(\"hl2.exe\")+RVA(\"0x1234\")\n```\n\n\u003cp\u003eThe \"+\" symbol has the function of joining both addresses, and the RVA function will be used to retrieve that address and at the end we can obtain the relative address that contains that desired instruction, the prefix \"0x\" is not mandatory more help in identification. There is another instruction that also has a similar function, we can often work with compressed or virtualized or obfuscated binaries, and they do not always have a default address or RVA offset, in this case we use the memory byte patterns, the engine also supports you You can see an example of usage below:\u003c/p\u003e\n\n```\n  IMGBASE(\"hl2.exe\")+PATTERN(\"40??90??10\")\n```\n\n\u003cp\u003eThat way the engine will know to look for the pattern in the mapped sections of the binary.\u003c/p\u003e\n\n\u003cp\u003eThe scripting language is very important new features may arrive soon, and these features are used in two places you can check the screenshot below:\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/keowu/sourceengineexplorer/blob/main/pics/b1.png?raw=true\"\u003e\n\u003c/div\u003e\n\n\u003cp\u003eSometimes you can choose the options more precisely what action you want to do, for example:\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/keowu/sourceengineexplorer/blob/main/pics/b2.png?raw=true\"\u003e\n\u003c/div\u003e\n\n\u003cp\u003eAnother use for the scripting language is for the patching system, here's a quick example:\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/keowu/sourceengineexplorer/blob/main/pics/b3.png?raw=true\"\u003e\n\u003c/div\u003e\n\n\u003cp\u003eAfter we insert the script we are asked to insert the shellcode we want, in this next example I put two \"nop\" instructions, standard from the intel manual.\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/keowu/sourceengineexplorer/blob/main/pics/b4.png?raw=true\"\u003e\n\u003c/div\u003e\n\n\u003cp\u003eAnd after that, our engine prepared, activated the patch and left it on a list so that we can modify our game:\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/keowu/sourceengineexplorer/blob/main/pics/b5.png?raw=true\"\u003e\n\u003c/div\u003e\n\n\u003cp\u003eThe scripting system is very useful and will definitely speed up your patch life and organization.\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/keowu/sourceengineexplorer/blob/main/pics/4.png?raw=true\" width=\"6912\" height=\"400\"\u003e\n\u003c/div\u003e\n\n\u003ch3 align=\"center\"\u003ePatching List\u003c/h3\u003e\n\n\u003e With the patch list system you can make several quick modifications, it is possible to create a new patch in a certain address or region of the binary or search by memory pattern, when created this patch is automatically activated and added to the list and from there you You can remove, disable or enable whenever you want.\n\n\u003cp\u003eLet's see more didactic usage examples:\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/keowu/sourceengineexplorer/blob/main/pics/b6.png?raw=true\"\u003e\n\u003c/div\u003e\n\n\u003cp\u003eIn this example, on the 1st click a prompt will open informing you to insert the script for the engine, 2nd I inform this script, in this case I informed that it should look for the module \"server.dll\" loaded and direct to the RVA \"0x122266\" and there put a shellcode when clicking ok, notice that in 3rd the tree is normal, and that in the disassembler we can see the instructions responsible for aligning the leaf with the trunk of the tree.\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/keowu/sourceengineexplorer/blob/main/pics/b7.png?raw=true\"\u003e\n\u003c/div\u003e\n\n\u003cp\u003e1st Notice that the window requesting the shellcode was opened after pressing OK, I informed that it would be 0x90, 0x90, \"referencing two nop instructions\", basically the processor will ignore the execution and go straight, pay attention to the 3rd one which is the trunk of the tree aligned with its leaf.\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/keowu/sourceengineexplorer/blob/main/pics/b8.png?raw=true\"\u003e\n\u003c/div\u003e\n\n\u003cp\u003eNotice that in 1st a patch was added to the list, and the game was applied, see in 2nd that the instructions have already been modified in Disassembler View, 3rd you can see that we can already see the difference in the game and that the trees are no longer aligned with their change, 4th you can disable this patch or enable it whenever you want, and finally on the \"-\" button you disable the patch and recover all the instructions of the modified region that are stored as backup in a model class.\u003c/p\u003e\n\n\u003cimg src=\"https://github.com/keowu/sourceengineexplorer/blob/main/pics/5.png?raw=true\" width=\"6912\" height=\"400\"\u003e\n\n\u003ch3 align=\"center\"\u003eDisassembler Explorer\u003c/h3\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/keowu/sourceengineexplorer/blob/main/pics/b9.png?raw=true\"\u003e\n\u003c/div\u003e\n\n\u003cp\u003eIn the 1st you must inform the script you want to run, define a custom search option, and finally in the 2nd you will get all the Disassembler output after completion by the engine.\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/keowu/sourceengineexplorer/blob/main/pics/6.png?raw=true\" width=\"6912\" height=\"400\"\u003e\n\u003c/div\u003e\n\n\u003ch3 align=\"center\"\u003eCloud Based Pseudo-C Decompiler\u003c/h3\u003e\n\n\u003e I'm working on my own compiler studying open source projects, currently I need a lot of binaries to study and improve, that's when the idea to create this function in this project came up, it's still under development but the technical details are as follows:\n\n\u003cp\u003eWhen a binary is sent to the server for decompilation, the content is encrypted with a private key shared between the user and the server, the server receives all the data and allocates a position in the queue for the user to wait until the binary is decompiled on the server. server and returns an index of the queue, this index is checked every period of time until the server indicates a payload of the content of the decompiler encrypting with the shared key that only the user has access, thus making the decompiled code available.\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/keowu/sourceengineexplorer/blob/main/pics/7.png?raw=true\" width=\"6912\" height=\"400\"\u003e\n\u003c/div\u003e\n\n\u003ch3 align=\"center\"\u003eDemo Videos\u003c/h3\u003e\n\n\u003e Here you can check out videos I recorded, showing how the project works and its features, I hope you like it.\n\n\n[![Watch the video](https://i3.ytimg.com/vi/iRUhYC6w2pI/hqdefault.jpg)](https://youtu.be/iRUhYC6w2pI)\n\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/keowu/sourceengineexplorer/blob/main/pics/8.png?raw=true\" width=\"6912\" height=\"400\"\u003e\n\u003c/div\u003e\n\n\u003ch3 align=\"center\"\u003eContent Download\u003c/h3\u003e\n\n\u003e Here you can download all my IDB's and my complete analysis see my organization chart while I was developing my project, I hope this helps you to learn or share more knowledge and improve the project.\n\n\u003ch4 align=\"center\"\u003e\u003ca href=\"https://mega.nz/folder/HLIBmBJS#SSYLMX7L2HmRNWbw_JlwVw\" target=\"_blank\"\u003eComplete shared folder\u003c/a\u003e\u003c/h4\u003e\n\n\u003ch4\u003eFile list: \u003c/h4\u003e\n\n- \u003ca href=\"https://mega.nz/file/qCxDzZrQ#JPhYi0wcAOHNTnTskBizNsgj1WKQy2wvVXnrsQ8NzwI\" target=\"_blank\"\u003eclient.dll.idb (IDA 7.5)\u003c/a\u003e\n- \u003ca href=\"https://mega.nz/file/mSQkWDzC#oTcDxX5hEa-FV5xwZ1Y0gJzORrFlOm7p1g42or7ei2c\" target=\"_blank\"\u003eengine.dll.idb (IDA 7.5)\u003c/a\u003e\n- \u003ca href=\"https://mega.nz/file/7SZ3nTRA#TUJfAD6HqXPK9Jg1MLly2JTkjv8Ic8hvkYMC-qmp7Ko\" target=\"_blank\"\u003eserver.dll.idb (IDA 7.5)\u003c/a\u003e\n- \u003ca href=\"https://mega.nz/file/iGRxHQhA#J1u8dxsHmzHhDOnaEEQfFj56m58N4F60HZ7PLRhm0fA\" target=\"_blank\"\u003esteamclient.dll_after_21_09_2022.idb (IDA 7.5)\u003c/a\u003e\n- \u003ca href=\"https://mega.nz/file/rXQURDjT#c8gup8pUWe5iNXePp_QZN47XFMTqsjxtL3A43HMN-nY\" target=\"_blank\"\u003esteamclient.dll_before_21_09_2022.idb (IDA 7.5)\u003c/a\u003e\n- \u003ca href=\"https://mega.nz/file/iSwjCQpR#R1Q63bNcapZyPL8IQiM583v4wLKnqZP7O843UZ8CIGc\" target=\"_blank\"\u003etier0.dll.idb (IDA 7.5)\u003c/a\u003e\n\n\u003ch5\u003eHave good studies or good contributions to the community and to the project :)\u003c/h5\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/keowu/sourceengineexplorer/blob/main/pics/9.png?raw=true\" width=\"6912\" height=\"400\"\u003e\n\u003c/div\u003e\n\n\u003ch3 align=\"center\"\u003eContribuite/Future\u003c/h3\u003e\n\n\u003e You can contribute to the project by suggesting features or improvements.\n\n\u003cp\u003eAny like, issue, PR's are welcome, as long as they are polite and good for the long-term development of the project, as it is a testing project.\u003c/p\u003e\n\n\u003ch6\u003eSpecial thanks to the developers of \u003ca href=\"https://github.com/BeaEngine/beaengine\"\u003eBeaEngine\u003c/a\u003e, for providing a fast, stable and very useful engine\u003c/h6\u003e\n\u003ch6\u003eMany thanks to \u003ca href=\"https://github.com/AkkoS2\"\u003e\"AkkoS2\"\u003c/a\u003e, for contributing suggesting content and editing the videos images and managing the security of the repository.\u003c/h6\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeowu%2Fsourceengineexplorer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeowu%2Fsourceengineexplorer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeowu%2Fsourceengineexplorer/lists"}