{"id":26317974,"url":"https://github.com/jakka351/genericdiagnostictool","last_synced_at":"2025-09-06T01:35:39.344Z","repository":{"id":256044096,"uuid":"854197869","full_name":"jakka351/GenericDiagnosticTool","owner":"jakka351","description":"Generic Diagnostic Tool is an open source, free J2534 PassThru software tool for general purpose use of raw diagnostic protocols on an ECU.","archived":false,"fork":false,"pushed_at":"2025-03-19T03:03:05.000Z","size":1557,"stargazers_count":36,"open_issues_count":0,"forks_count":5,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-04-01T08:51:18.323Z","etag":null,"topics":["diagnostics","j2534","kwp2000","passthru","protocol","uds"],"latest_commit_sha":null,"homepage":"https://testerpresent.com.au","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jakka351.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-09-08T16:27:20.000Z","updated_at":"2025-03-31T10:45:55.000Z","dependencies_parsed_at":"2024-12-03T12:19:17.691Z","dependency_job_id":"eb5cb61c-f3e3-460c-b372-100abc9ae9e7","html_url":"https://github.com/jakka351/GenericDiagnosticTool","commit_stats":null,"previous_names":["jakka351/genericdiagnostic","jakka351/genericdiagnostictool"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/jakka351/GenericDiagnosticTool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakka351%2FGenericDiagnosticTool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakka351%2FGenericDiagnosticTool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakka351%2FGenericDiagnosticTool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakka351%2FGenericDiagnosticTool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jakka351","download_url":"https://codeload.github.com/jakka351/GenericDiagnosticTool/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakka351%2FGenericDiagnosticTool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273846978,"owners_count":25178630,"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","status":"online","status_checked_at":"2025-09-05T02:00:09.113Z","response_time":402,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["diagnostics","j2534","kwp2000","passthru","protocol","uds"],"created_at":"2025-03-15T14:16:23.666Z","updated_at":"2025-09-06T01:35:39.333Z","avatar_url":"https://github.com/jakka351.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca href=\"https://testerpresent.com.au/\"\u003e\n\u003cimg width=\"1326\" height=\"201\" alt=\"image\" src=\"https://github.com/user-attachments/assets/d6519415-9430-4fa9-aedf-41249296c096\" /\u003e\n\u003c/a\u003e\n\n\n\n\n![image](https://github.com/user-attachments/assets/7932d065-f401-461b-b10f-054ac3428bf2)\n\n\n\u003ca href=\"https://testerpresent.com.au/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Tester Present Specialist Automotive Solutions -Open Source Projects- blue\" /\u003e\u003c/a\u003e\n\n\n![image](https://user-images.githubusercontent.com/57064943/163714778-8598c24a-6ae2-49f6-ba4c-42de94dfa025.png)\n\n\n## Generic Diagnostic Tool\nGeneric Diagnostic Tool is an open source, free J2534 PassThru software tool for general purpose use of raw diagnostic protocols on an ECU. It can be used for diagnostics, reverse engineering, development and hacking of ECUs.\n\nThis is general purpose diagnostic software that allows you to control individual diagnostic services. Have not seen any open source generic diagnostic software for J2534 devices so I thought I would make some. Currently for use on vehicles with ECUs on a typical High Speed CAN and Medium Speed CAN, aiming for it to work with Ford, Mazda, JLR, Volvo and anything OBD2 compliant. Allows you to set the ECU RX \u0026 TX Address (ie 7E0, 7E8 for a Powertrain Control Module) and connect to that ECU, and perform basic diagnostic functions using both KWP2000 protocol or UDS protocol. This is a work in progress... \n\n## Latest Update Announcements\n\u003cdetails \u003e\n\u003csummary\u003eUpdate 13/02/2025\u003c/summary\u003e\n\u003cbr\u003e\nHave uploaded the current code base as it is, and released the latest version in the releases tab. Still lots of bugs around the place, and many features yet to be implemented, but progress is progress!\n\u003c/details\u003e\n\n\u003cdetails \u003e\n\u003csummary\u003eUpdate 04/12/2024\u003c/summary\u003e\n\u003cbr\u003e\nScaling and Resolution issue has been fixed. Added more to Security Access \u0026 DMR Tabs, CAN Sniffer should be working now, VIN grabber and decoder should be working, OBD2 should be working. Tested with an OBDXPro FT and a Ford VCM2, other interfaces should work now as well, this has come at the cost of having MidSpeed CAN access for the time being.   \n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eUpdate 08/12/2024\u003c/summary\u003e  \n\u003cbr\u003e\nDiagnostic Fault Codes can now be read out in their own tab, codes can be read and cleared. No Definitions as of yet.  \n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eUpdate 11/12/2024\u003c/summary\u003e\n\u003cbr\u003e\nAdded another 400 secret keys to the bruteforcer, taken from JLR SDD and thanks to https://github.com/smartgauges/exml so now the Bruteforcer will be able to unlock JLR ECUs up until 2016. Also adeed PSA Security Access Algo.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eUpdate 13/12/2024\u003c/summary\u003e\n\u003cbr\u003e\nStarted work on a nicely formatted DTC table to replace the single listBox currently being used to display DTC, as well as fully parsing out each fault code to display the type, sub type and definition of each DTC in the table. Collected various definitions and dictionaries with a view to creating a mega DTC definition dictionary that can cover all bases.  \n\u003c/details\u003e\n  \n\u003cdetails\u003e\n\u003csummary\u003eUpdate 24/12/2024\u003c/summary\u003e\n\u003cbr\u003e\nStarted the code to use 29 BIT CAN Identifiers for the ECU RX and TX Address.  \n\u003c/details\u003e\n  \n![image](https://github.com/user-attachments/assets/f25639d4-8942-4e41-bc26-7130dd33a0fb)\n\n![image](https://github.com/user-attachments/assets/375d5be0-9f75-4e11-b00e-bbe185f020af)\n\n![image](https://github.com/user-attachments/assets/6de3e637-a58b-4a6d-ad4c-553c123e2361)\n\n\n\n\n\n## Needed for the project\nThings such as security access algorithms and seed keys from various OEMs, Diagnostic Fault Code definitions, protocol specification sheets, ECU information, DID/PID definitions and anything else that is related are needed to expand the project. If you are able to supply any of these things it would be greatly appreciated. ACTIVELY LOOKING FOR DIAGNOSTIC TROUBLE CODE DEFINTIIONS \u0026 DICTIONARIES. Feel free to get in touch!\n\n\n## Current Functionality (using KWP2000, UDS) implemented diagnostic services\n- 0x10 Diagnostic Session Control\n- 0x11 ECU Reset\n- 0x14 Clear Diagnostic Information (Clear DTC)\n- 0x18 Read Diagnostic Information (Read DTC), DTC has its own tab now with a read out of read fault codes printed into a list box\n- 0x3E Tester Present\n- 0x27 Security Access \u0026 Bruteforcing tool\n- 0x85 Control DTC Setting\n- 0x22 DID/PID bruteforcing, find all DID/PID that return data\n- 0x23 Direct Memory Read, for reading out flash memory/EEPROM\n- OBD2 Services\n- CAN Sniffer\n- VIN Decoder\n- Store and Send Arbitrary PassThru messages to ECU\n\n![image](https://github.com/user-attachments/assets/586e7fbf-9265-4dab-b46c-9ff85fc407cb)\n\n    \n\n![image](https://github.com/user-attachments/assets/c43cbd55-5c05-4653-8ea9-c111af294497)\n![image](https://github.com/user-attachments/assets/d1ea71cb-21b5-47fb-aeef-4032bd605bdb)\n![image](https://github.com/user-attachments/assets/ba8fb23b-3de2-4275-933c-e7bffbb3df7b)\n![image](https://github.com/user-attachments/assets/1543b81b-6b83-4c1a-8391-e8cda4de3e17)\n\n\n\n\n\n## Planned Functionality \n\n- Read and Clear Diagnostic Trouble Codes (partially conpleted)\n- Enumerate all online ECUs(ECU RX and TX CAN ID identifier)\n- Flash Toolkit\n- Diagnostic Command (service 0xB1)\n- Routine Control (service 0x31)\n- Wtite Data to ECU\n- Communication Control (service 0x28)\n- ECU Self Tests\n- Request Download/Upload and Transfer Data (services 0x34, 0x35 and 0x36)\n- Expand to cover 29 Bit CAN IDs as ECU addresses\n\n## 64 Bit Mode\nThe software can be run as x64, if you are using the OBDxPro FT J2534 Interface, as this has x64 drivers available to use, where as no other J2534 device manufacturers have implemented a 64 bit J2534 Driver. This is needed for bruteforcing security access to prevent an out of memory exception. A 64 Bit Version of the software will be available in the releases pages shortly.\n\n\u003cimg align=\"right\" src=\"https://testerpresent.com.au/wp-content/uploads/2024/03/EDR@2x-1.png\" height=\"20%\" width=\"20%\"/\u003e\n\n## J2534 Interface\nThis implementation currently only works with an OBDXPro FT J2534 interface(https://obdxpro.com). Hoping to troubleshoot it such that it is compliant with all J2534 interfaces, ie VCM2, VCM3, Tactrix Openport, Mongoose Pro. Feel free to fork and modify it to work with your devices.\n\n\u003cdetails\u003e\n\u003csummary\u003eUpdate 07/12/2024\u003c/summary\u003e\n\u003cbr\u003e\nMinor modifications to the J2534 code have proven successful and I have tested the software with a Ford VCM2, Tactrix Openport and Mongoose Pro successfully. Still have to look into using PassThruIoctl for connecting to MidSpeed CANbuses. Looking for more interfaces to be tested.  \n\u003c/details\u003e\n\n## Technical Support\nIf you are using this software and require techncial support, Tester Present Specialist Automotive solutions provides technical support for $150 AUD per hour. Feel free to get in touch if you require support. https://testerpresent.com.au\n\n## Executable Download\nSee the Releases Page.\n\n## Contact Details\n\n![TesterPresentNewBusinessCard](https://github.com/user-attachments/assets/e02fb18b-9eef-4764-a2be-81e060dc8bb3)\n![image](https://user-images.githubusercontent.com/57064943/163714778-8598c24a-6ae2-49f6-ba4c-42de94dfa025.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakka351%2Fgenericdiagnostictool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjakka351%2Fgenericdiagnostictool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakka351%2Fgenericdiagnostictool/lists"}