swap to sysCheckME (mod with wii mini support); Add credits to sysCheck devs on website

This commit is contained in:
CrafterPika 2024-11-01 14:41:43 +01:00
parent 12262ddbd7
commit 5a13637907
Signed by: crafterpika
GPG key ID: B4E0BA4B52B201DC
10 changed files with 56 additions and 209 deletions

28
app.py
View file

@ -58,9 +58,9 @@ def index():
upload_time = datetime.fromtimestamp(upload[1]) upload_time = datetime.fromtimestamp(upload[1])
uploadIndex+="ID: <a href='/view_report?id={}' target='_blank'>{}</a> -- Uploaded at {}!<br>".format(upload[0], upload[0], upload_time) uploadIndex+="ID: <a href='/view_report?id={}' target='_blank'>{}</a> -- Uploaded at {}!<br>".format(upload[0], upload[0], upload_time)
return render_template("index.html", uploadIndex=uploadIndex, report_count=report_count[0][0]), 200 return render_template("index.html", uploadIndex=uploadIndex, report_count=report_count[0][0], svr_ver=config["version"]), 200
@app.route("/syscheck_send.php", methods=["POST"]) # SysCheck2.1.0b.19 @app.route("/syscheck_up.php", methods=["POST"]) # SysCheckME-dev
@app.route("/syscheck_receiver.php", methods=["POST"]) # literally anything else @app.route("/syscheck_receiver.php", methods=["POST"]) # literally anything else
def syscheck_report(): def syscheck_report():
form_data = request.form.to_dict(flat=False) form_data = request.form.to_dict(flat=False)
@ -68,14 +68,14 @@ def syscheck_report():
console_id = get_console_id(report_txt) console_id = get_console_id(report_txt)
if console_id == "0": if console_id == "0":
return "ERROR: Not a valid sysCheck!", 200 return "ERROR: Not a valid sysCheck!", 200
console_id_censor = "Console ID: "+console_id[:-4]+"***" console_id_censor = console_id[:-4]+"***"
timestamp = int(time.time()) timestamp = int(time.time())
report_id = id_generator(6, 'AaBbCcDdFfeEgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWXxYyZz1234567890') report_id = id_generator(6, 'AaBbCcDdFfeEgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWXxYyZz1234567890')
if form_data["password"][0] in config["upload_passwords"]: if form_data["password"][0] in config["upload_passwords"]:
try: try:
with open(f"{report_dir}/{report_id}.csv", "a+") as report: with open(f"{report_dir}/{report_id}.csv", "a+") as report:
report.write(report_txt.replace(f"Console ID: {console_id}", "Console ID: {}".format(console_id_censor))) report.write(report_txt.replace(console_id, console_id_censor))
db = sqlite3.connect(db_dir) db = sqlite3.connect(db_dir)
cursor = db.cursor() cursor = db.cursor()
@ -95,36 +95,36 @@ def view_report():
report_id = request.args.get("id") report_id = request.args.get("id")
if os.path.isfile(f"{report_dir}/{report_id}.csv"): if os.path.isfile(f"{report_dir}/{report_id}.csv"):
with open(f"{report_dir}/{report_id}.csv", "r") as report: with open(f"{report_dir}/{report_id}.csv", "r") as report:
return render_template("view_report.html", report_id=report_id, report_content=html.escape(report.read())), 200 return render_template("view_report.html", report_id=report_id, report_content=html.escape(report.read()), svr_ver=config["version"]), 200
else: else:
return "Report does not exist.", 404 return "Report does not exist.", 404
@app.route("/syscheck2", methods=["GET"]) @app.route("/syscheck_dl", methods=["GET"])
def syscheck(): def syscheck():
if len("http://syscheck.softwii.de/syscheck_receiver.php") < len(config["replace_str"]): if len("http://syscheck.rc24.xyz/syscheck_receiver.php") < len(config["replace_str"]):
return "Replacement host has to be exactly 48 characters; Specified URL is too long!", 400 return "Replacement host has to be exactly 48 characters; Specified URL is too long!", 400
elif len("http://syscheck.softwii.de/syscheck_receiver.php") > len(config["replace_str"]): elif len("http://syscheck.rc24.xyz/syscheck_receiver.php") > len(config["replace_str"]):
return "Replacement host has to be exactly 48 characters; Specified URL is too short!", 400 return "Replacement host has to be exactly 48 characters; Specified URL is too short!", 400
dol = BytesIO() dol = BytesIO()
zip = BytesIO() zip = BytesIO()
# hex edit boot.dol # hex edit boot.dol
dol2 = open(f"{os.getcwd()}/static/syscheck2/boot.dol", "rb") dol2 = open(f"{os.getcwd()}/static/syscheck/boot.dol", "rb")
dol.write(dol2.read().replace("http://syscheck.softwii.de/syscheck_receiver.php".encode("utf-8"), config["replace_str"].encode("utf-8"))) dol.write(dol2.read().replace("http://syscheck.rc24.xyz/syscheck_receiver.php".encode("utf-8"), config["replace_str"].encode("utf-8")))
dol.seek(0) dol.seek(0)
dol2.close() dol2.close()
zf = zipfile.ZipFile(zip, "w", zipfile.ZIP_DEFLATED, False) zf = zipfile.ZipFile(zip, "w", zipfile.ZIP_DEFLATED, False)
zf.writestr("apps/syscheck2/boot.dol", dol.read()) zf.writestr("apps/SysCheckME/boot.dol", dol.read())
dol.close() dol.close()
zf.write(f"{os.getcwd()}/static/syscheck2/icon.png", "apps/syscheck2/icon.png") zf.write(f"{os.getcwd()}/static/syscheck/icon.png", "apps/SysCheckME/icon.png")
zf.write(f"{os.getcwd()}/static/syscheck2/meta.xml", "apps/syscheck2/meta.xml") zf.write(f"{os.getcwd()}/static/syscheck/meta.xml", "apps/SysCheckME/meta.xml")
zf.close() zf.close()
zip.seek(0) zip.seek(0)
# send zipfile # send zipfile
return send_file(zip, mimetype="application/zip", as_attachment=True, download_name="syscheck2.1.0.b19v2.zip"), 200 return send_file(zip, mimetype="application/zip", as_attachment=True, download_name="SysCheckME.zip"), 200
# handle errors # handle errors
@app.errorhandler(400) @app.errorhandler(400)

View file

@ -1,11 +1,11 @@
{ {
"ip": "0.0.0.0", "ip": "0.0.0.0",
"port": "6969", "port": "6969",
"version": "1.0.5", "version": "1.0.6",
"upload_passwords": [ "upload_passwords": [
"d2wRuTEObSAN", "d2wRuTEObSAN",
"B277eNGp789a" "B277eNGp789a"
], ],
"replace_str": "http://syscheck.crafterpika.cc/syscheck_send.php", "replace_str": "http://syscheck.crafterpika.cc/syscheck_up.php",
"docker": false "docker": false
} }

BIN
static/syscheck/boot.dol Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

BIN
static/syscheck/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

29
static/syscheck/meta.xml Normal file
View file

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<app version="1">
<name>SysCheck ModMii Edition</name>
<coder>blackb0x, JoostinOnline, Double_A, R2-D2199, Nano</coder>
<version>2.5.0</version>
<release_date>20230309000000</release_date>
<short_description>System Checker ModMii Edition</short_description>
<long_description>Homebrew application which does several checks on installed IOS and custom IOS:
- Base IOS Detection
- vIOS Detection
- Beer Ticket
- IOS Stub
- Fake Signature (aka Trucha Bug)
- ES_DiVerify (aka ES_Identify)
- Flash Access
- NAND Access
- Boot2 Access
- USB 2.0
SysCheck generates a report on the root of your storage device (e.g. usb:/SysCheck.csv).
The author can not be held responsible for any damage SysCheck might cause!</long_description>
<arguments>
<arg>--debug=false</arg>
<arg>--forceNoAHBPROT=false</arg>
<arg>--skipIOS=0</arg>
</arguments>
<no_ios_reload/>
</app>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

View file

@ -1,190 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<app version="1">
<name>sysCheck</name>
<coder>Double_A, R2-D2199 and Nano</coder>
<version>2.1.0.b19v2</version>
<release_date>20121227000000</release_date>
<short_description>System Checker</short_description>
<long_description>Homebrew application which does several checks on installed IOS and custom IOS:
- Base IOS Detection
- IOS Stub;
- Fake signature (aka Trucha Bug);
- ES_DiVerify (aka ES_Identify);
- Flash Access;
- NAND Access;
- Boot2 Access;
- USB 2.0.
sysCheck generates a report on the root of the SD card (sd:/sysCheck.csv).
The author can not be held responsible for any damage sysCheck might cause!
------------------
Changelog
Version 2.1.0.b19v2
* Fixed broken server url with a hex editor
P.S. you should only use this version of sysCheck on a Wii Mini (because every other sysCheck version crashes on the console)
Version 2.1.0.b19
* Fixed HBC 1.1.x detection, thanks Nano
* Added HBF detection, thanks Nano
* Added DIOS MIOS detection
Version 2.1.0.b18
* Fixed HBC 1.1.0 detection
* Compiled with libogc 1.8.9 (this should fix the newer wii motes)
Version 2.1.0.b17
* Fixed bug in stub detection / changed stub detection
* Added some debug outputs
* New Italian translation by Roberto Boriotti
Version 2.1.0.b16
* Changed HTTP GET to HTTP POST request in sysCheck transmission
* Added debug log file option (in meta.xml change parameter "--debug=false" to "--debug=true")
* Hopefully fixed crash when no HW_AHBPROT is available
* Some bugfixes and improvements
Version 2.1.0.b15
* Changed drive detection to drive date detection
* Report upload feature
* Some bugfixes in base IOS detection
* Fixed some typos in some languages
* Added detection for region changed Wiis, thanks Joostinonline
Version 2.1.0.b14
* Added drive detection
* Compiled with libOGC 1.8.8
Version 2.1.0.b13
* Improved Base IOS detection
* Added PreFiix detection
* Added IOS252 (bootcb2) detection
Version 2.1.0.b12
* Fixed "Priiloader NAND Access Bug", thanks BoehserOnkel
* Fixed HW_AHBPROT Bug, thanks davebaol
* Improved Base IOS Detection, thanks Black.Pearl
* Added Gecko output/debugging
* Added update function
Version 2.1.0.b11
* Code improvements
Version 2.1.0.b10
* Added HW_AHBPROT to use the new Base IOS Detection faster
* Improved Base IOS Detection
* Added Indetification for IOS patched with SIP
Version 2.1.0.b9
* Improved Base IOS Detection
* Added new Base IOS Detection (thanks to WiiPower)
* Integrated IOSinfo Tool
* Added Priiloader Detection
Version 2.1.0.b8
* Improved Base IOS Detection
* New Stub Detection
* New Page scroll function in syscheck viewer
* fixed french language, thanks to rlelamer
Version 2.1.0.b7
* Improved Base IOS Detection
* Prepared USB Support
Version 2.1.0.b6
* Improved Base IOS Detection
* Added IOS58 USB2.0 Detection
* Added IOS253 NANDEmu Detection
Version 2.1.0.b5
* Bugfixes
Version 2.1.0.b4
* Improved Base IOS Detection (cIOSX rev21)
* Added Systemmenue Detection by IOS
Version 2.1.0.b3
* Bugfixes
* Improved Base IOS Detection
* Added HBC Detection
Version 2.1.0.b2
* Bugfixes
* Improved Base IOS Detection
Version 2.1.0.b
* Base IOS Detection
Version 2.0.1
* Fixed Bug in English System Menu version (v-2145571844)
* Shows which IOS is beeing tested
* Added French translation (thx Attila)
Version 2.0
* Added a very nice GUI (thx NeoRame)
* Improved report text (no Enabled/Disabled anymore)
* Added BC and MIOS check
* Report can be displayed without SD
* Fixed some bugs
* Easy to translate (language file in source)
Version 1.6.3
* Automatically detect the language settings (supports English and German only);
* Possible to select individual IOS to check;
* Select "back to HBC", "back to System Menu" or "shutdown" at the end;
* Option to read the report directly on Wii at the end.
Version 1.6.2
* Automatically detect the language settings (supports English and French only);
* Improve IOS stubs detection;
* Recompiled with the latest version of DevkitPro;
* Code cleanup.
Version 1.6.1
* Fix BootMii as IOS issue.
Version 1.6
* Improve IOS Stubs detection;
* Improve Fake Signature check;
* Check for NAND Access;
* Display Hollywood GPU version;
* Display Console ID;
* Display Boot2 version.
Version 1.5
* Fix IOS202 issue;
* Improve IOS stubs detection;
* Error handling corrections;
* Wii Light is turn on when generating the CSV report;
* Code cleanup.
Version 1.4
* Check for USB 2.0 IOS Tree;
* Display the current date and time in the report;
* Recompiled with the latest version of DevkitPro;
* Code cleanup.
Version 1.3 (unreleased)
* Detect the console region;
* Error handling corrections.
Version 1.2 (unreleased)
* Check for Flash Access;
* Check for Boot2 Access.
Version 1.1
* Fix IOS stubs detection;
* Fix IOS revision number displayed on Reload;
* Code cleanup.
Version 1.0
* Initial public release
</long_description>
<arguments>
<arg>--debug=false</arg>
</arguments>
<no_ios_reload/>
</app>

View file

@ -8,10 +8,10 @@
</head> </head>
<body> <body>
<div class="topnav"> <div class="topnav">
<a href="/syscheck2">Download sysCheck2 (Wii Mini)</a> <a href="/syscheck_dl">Download SysCheckME</a>
</div> </div>
<center> <center>
<h1>Last 15 SysCheck Uploads:</h1> <h1>Latest Uploads:</h1>
<div class="content"> <div class="content">
{{ uploadIndex|safe }} {{ uploadIndex|safe }}
</div> </div>
@ -21,8 +21,12 @@
<br> <br>
<p>Enter you're SysCheck report ID here: <input type="text" id="report_id" placeholder="example"> <button type="button" id="submit-btn">Submit</button></p> <p>Enter you're SysCheck report ID here: <input type="text" id="report_id" placeholder="example"> <button type="button" id="submit-btn">Submit</button></p>
<br> <br>
<hr>
<br> <br>
SysCheck server written by CrafterPika! <a href='https://github.com/CrafterPika/syscheck_receiver' target='_blank'>Source Code</a> <p>SysCheck server written by CrafterPika! <a href='https://github.com/CrafterPika/syscheck_receiver' target='_blank'>Source Code</a></p>
<p>SysCheck by <a href="https://github.com/modmii/SysCheck-ModMii-Edition" target="_blank">XFlak & Co</a></p>
<p>syscheck_receiver v{{ svr_ver }}</p>
<p>© CrafterPika <script>document.write(new Date().getFullYear());</script></p>
</center> </center>
<script src="{{ url_for('static', filename='main.js') }}"></script> <script src="{{ url_for('static', filename='main.js') }}"></script>
</body> </body>

View file

@ -12,9 +12,13 @@
{{ report_content }} {{ report_content }}
</pre> </pre>
<br> <br>
<hr>
<br> <br>
<center> <center>
<p>SysCheck server written by CrafterPika! <a href='https://github.com/CrafterPika/syscheck_receiver' target='_blank'>Source Code</a></p> <p>SysCheck server written by CrafterPika! <a href='https://github.com/CrafterPika/syscheck_receiver' target='_blank'>Source Code</a></p>
<p>SysCheck by <a href="https://github.com/modmii/SysCheck-ModMii-Edition" target="_blank">XFlak & Co</a></p>
<p>syscheck_receiver v{{ svr_ver }}</p>
<p>© CrafterPika <script>document.write(new Date().getFullYear());</script></p>
</center> </center>
</body> </body>
</html> </html>