![]() |
|
[CONTEST] ARM Project - Printable Version +- Sinisterly (https://sinister.ly) +-- Forum: Coding (https://sinister.ly/Forum-Coding) +--- Forum: Assembly (https://sinister.ly/Forum-Assembly) +--- Thread: [CONTEST] ARM Project (/Thread-CONTEST-ARM-Project) |
[CONTEST] ARM Project - phyrrus9 - 03-31-2018 So, in an attempt to get people a little more enthused about ARM after writing Introduction to ARM
I have decided to run a competition with REAL prizes. This will be a basic coding challenge designed to do things you could normally accomplish with relative ease in a language like C or C++, but a project that's complex enough that there will be a lot of variation between submissions. Judging Criteria Code: 5pts - Build
For each warning you will lose 1 point
If even 1 error, you receive no points, I will attempt to fix them. If I'm unable to, you are disqualified
10pt - Program Completeness
If your program meets all of the requirements, you will receive full points.
For each requirement you miss, you will lose 3 points
15pt - Reliability
I will be running your program multiple times and on a variety of input, some of it will be bad input.
If your program rejects all bad input, you will receive 5 points
If it accepts all good input, you will receive 5 points
You will start with 5 points. I will run your program many times, for each failure (after testing the above), you will lose 1 point.
25pt - Speed / Efficiency
I will benchmark your code against the best and the worst solution.
The best will receive 25 points
The worst will receive 0 points
The remainder will be proportional between them
15pt - Program and Image Size
Your program will be graded against the best and the worst solution. This category compares the program binary, source code, and (maximum) memory usage.
The best will receive 15 points
The worst will receive 0 points
This will be graded as 3 5 point subcategories, however the best and worst will be determined by net average
30pt - Entry order
Being able to write code quickly is important, and you will be rewarded for submitting your entry first. You will receive points based on the formula P=30-(E*8), where E is the number of (total) entries before you.Rules Multiple submissions ARE allowed, however after your first entry, you will lose 5 points for each entry To submit an entry, please fill out this google form When submitting an entry, be honest. If you lie about your username, or your entry number (I can actually check that, it's just there to give others a general idea) you will be disqualified After you have submitted an entry, you MUST post in this thread with the date and time (in Pacific Standard Time, GMT-8). This is used to prevent fraudulent submissions Please be sure to select the prize you would like the most. Second place winner will receive 25 NSP You may use ONLY ARM assembly. Makefiles are allowed. Your code must assemble for 32-bit ARM Linux, using the ARMv4T architecture You may not write Thumb2 code. Pure ARM is required You may not use any co-processors or the floating point unit If your code looks like it was generated by a compiler, you will be disqualified. You must write it yourself. You may not use another member's code. You may only use the standard Linux system call API Use of libraries is NOT allowed. You may, however use the following libc functions:
The Challenge Do NOT open this spoiler until you have read and understand both the Rules and Judging Criteria. Spoiler:
You will be creating a basic encryption program, using RSA. Your program will need to serve both as a key generator and as an encryption/decryption program. The program will be implementing 32-bit RSA For help with the key generation algorithm, please look at Wikipedia Command line arguments will be passed to differentiate between the operating modes: Code: First argument:
g - generate key pair
e - encrypt
d - decrypt
Second argument:
<file> - the file to read or write the key(s) to
Third argument: (only used for encrypt/decrypt)
<file> - the input file
Fourth argument: (only used for encrypt/decrypt)
<file> - the output fileFor a C implementation of RSA using system bus width (64-bit), please check out this project on my github At the completion of this contest, I will post all submissions (including secondary submissions), the users who made the submission, and the scores they received. This competition begins now, and will end once one of the following conditions are met, and at least two users have enterred:
Happy coding and good luck to all! It should be noted, that I welcome submissions from anybody. Even if your program doesn't actually do the task, or isn't complete, you can still earn points. This contest is aimed to get more members involved with assembly, with is easily one of the top 3 most important hacking skills. Feel free to ask questions for me or other members, and feel free to help each other out, just don't share code. Secondary note: It's impossible to gravedig this thread during the duration of the contest. The forum rules cite grave digging as replying to a thread longer than 90 days old without meaningful input. If you want to reply to this thread, PLEASE do so. I will lock the thread shortly after the contest, and will post all of the submissions as stated. RE: [CONTEST] ARM Project - Hoss - 03-31-2018 Looks good. I'll be at least attempting to compete RE: [CONTEST] ARM Project - phyrrus9 - 03-31-2018 (03-31-2018, 09:58 AM)Hoss Wrote: Looks good. I'll be at least attempting to compete Even if you don't get it all, please submit something. This challenge isn't all that difficult though, you just have to keep track of your registers (think of it like having 14 global variable ints and that's all your program can use). I'd advise writing out your solution in a higher level lang like C, Rust, or Go without using anything but that language's most basic features (no lists, maps, structs, etc) and then translating it piece by piece. The tricky part comes with ARM not having any sort of modulo instruction. Hint: it does have UDIV, but if you're not careful with it, you will end up using the FPU, which is against the rules. RE: [CONTEST] ARM Project - Blink - 03-31-2018 I'm interested. You might need to change the settings on that Google Form though, because right now it wants me to sign into a Google account, and I don't have one. RE: [CONTEST] ARM Project - phyrrus9 - 03-31-2018 (03-31-2018, 08:49 PM)Ender Wrote: I'm interested. I have it set so you don't, so idk what's up with that..... Just make a random one and use that. I don't actually record that info so idgaf what email it comes from. Just need the info in the form to be right |