Jump to content
HWBOT Community Forums

Monabuntur

Members
  • Content Count

    11
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Monabuntur

  • Rank
    kitchen robot
  1. This benchmark is very easy, you have to run the benchmark and submit the verification file. There are no restrictions
  2. So, after some work I got it to work. To be able to submit a result to hwbot you need a specific version, that runs only on windows as it's an .exe (if you don't want to submit anything you can use the .py script that doesn't have the security features). Then to submit it you need to upload the encrypted .hwbot file (glorified xml, literally , it's an xml encrypted with AES 128) with score, os, motherboard, ram and all this snazzy stuff. I also compiled a version for linux and macOS just because I can
  3. So after a good day of me basically wanting to die I figured out the problem, the hwbot api wants the key and initialization vector encoded in hex notation, while I have to use it in base64 inside python. That's why the iv is 32byes long in hwbot while it has to be 16 bytes long in python!
  4. I'm updating my benchmark to use encrypted datafiles, and I get this error when I try to upload something. Without encryption the datafiles seem to work just fine, but when I add it I get this error. I am using AES 128 CBC. this is the unencrypted .xml file datafile.xml and this is the encrypted one datafile.hwbot when it goes public I will change the key, so here it is 3778214125442A472D4B615064536756 and the initialization vector 6E5A723475377821 The iv has to be 16 bytes otherwise cryptodome, the library I use, launches an exception. this is the function that creates the .xml and encrypts it def datafile(second): time = datetime.datetime.now() submission = ET.Element('submission') application = ET.Element('application') name = ET.Element('name') version = ET.Element('version') score = ET.Element('score') points = ET.Element('points') timestamp = ET.Element('timestamp') name.text = 'PYPrime' version.text = '1.4.1' points.text = str(second) timestamp.text = str(time) submission.set('xmlns:xsi', "http://www.w3.org/2001/XMLSchema-instance") submission.set('xmlns', "http://hwbot.org/submit/api?client=pyprime&clientVersion=1.4.1") submission.append(application) application.append(name) application.append(version) submission.append(score) score.append(points) submission.append(timestamp) file = open("datafile.hwbot", 'wb') file2 = open("datafile.xml", 'wb') key = b'3778214125442A472D4B615064536756' iv = b'6E5A723475377821' cipher = AES.new(key, AES.MODE_CBC, iv=iv) file.write(cipher.encrypt(pad(ET.tostring(submission, xml_declaration=True, encoding="utf-8"), 16))) file2.write(ET.tostring(submission, xml_declaration=True, encoding="utf-8")) file.close() I've been on stuck on this thing for about 10 hours, I hope someone can help me.
  5. So usually these linux topic don't end well, but is the Linux subsystem for windows allowed in cases like Geekbench? I can use CPU-Z and everything but the benchmark itself technically runs on linux, and the performance is slightly better.
  6. I'aware of this flaw (it's stupidly easy to modify the code) and I'm working on it, the easiest way would be compiling it to .pyc, but it would limit compatibility (as only the version on which it has been compiled will work), but this isn't the only way to do it... Anyways, thanks for the feedback, this really helps me make this better
  7. You can use whateaver os you want, but Linux (or the Linux subsystem for windows) would be a better overall choice, you can boot off a USB stick or use the aforementioned Linux subsystem for Windows Good luck!
  8. Is there a suggested API to get all specs in the computer? I am using python to make a multi platform benchmark (yes, python) and I have sorted most of the basic things out, in fact you can try it out (its called PYPrime, you can find it in the benchmarks section) but there are some, SOME, security issues I'm working on, being open source it's way too easy now to cheat, so I am now implementing datafiles to add some security, but I still can't reliably get the system specs (like memory timings, memory speed, motherboard vendor) ,heck, even the CPU is a bit hard to find in some cases. I would like to avoid using external libraries to make the installations as simple as possible, that's why I used this kind of things: def get_processor_info(): if platform.system() == "Windows": print('CPU: ', platform.processor()) elif platform.system() == "Darwin": print('CPU: ', bytes(subprocess.check_output(['/usr/sbin/sysctl', "-n", "machdep.cpu.brand_string"]).strip()).decode()) elif platform.system() == "Linux": command = "cat /proc/cpuinfo" print('CPU: ', subprocess.check_output(command, shell=True).strip()) return "" The worst part is that I can't seem to get access to the API documentation because this weird problem <response> <status>error</status> <message>Unable to process data request, please contact HWBOT if this issue persists.</message> </response> that appears every time I try to open the link, sometimes It happens when I try to view some benchmark submissions
  9. hi, could you please add the Core 2 Duo L9600? Edit: oh it's already in the database... sorry
×
×
  • Create New...