Forums
New posts
Search forums
What's new
New posts
New media
New media comments
Latest activity
Media
New media
New comments
Search media
Members
Registered members
Current visitors
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Menu
Log in
Register
Install the app
Install
Tamagotchi General
Tamagotchi Apps, TamaTown , e-Tamago and Codes
V3 Password Experimentation
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Help Support TamaTalk:
Message
<blockquote data-quote="hwd45" data-source="post: 3367082" data-attributes="member: 160853"><p>It's been less than a day since my last update - normally I'd just edit my last post but I feel like it might be worth bumping the thread for this update.</p><p></p><p>Unless I'm mistaken... I've figured out how the checksum works in the V3 passwords, thus cracking the algorithm.</p><p></p><p>There's still more to understand - with this I'm only capable of generating half the allowed password combinations (which is still obviously more than is necessary, so it's not really a big deal) due to that one variable which, when turned on, seems to make everything more difficult. I think, after this most recent revelation, it should be easier to figure out, though.</p><p></p><p>Recall that there's a five-byte structure to the passwords, which we'll represent as follows:</p><p></p><p>BYTE_5 | BYTE_4 | BYTE_3 | BYTE_2 | BYTE_1</p><p></p><p></p><p> For now we'll set BYTE_5 to zero to make things a bit easier. Recall also that a username constant is XOR'd onto this structure - for now we'll pretend we've already XOR'd out this username factor so the username is no longer affecting the password. Since BYTE_5 is zero, we get the following password structure, just by the nature of how these passwords work:</p><p></p><p>0 | BYTE_4 | BYTE_3 | BYTE_2 | 199</p><p></p><p>BYTE_2 = ITEM_ID XOR 70</p><p>BYTE_3 may be any integer from 0 to 255</p><p>BYTE_4 may be the checksum?</p><p></p><p></p><p> That random 70 was definitely raising my eyebrows and when adding together all of the bytes I noticed that the result I got most of the time was exactly 140 away from 256, a power of two. So I tried XORing out a couple 70s here and there:</p><p></p><p>0 | BYTE_4 | BYTE_3 | BYTE_2 | 199</p><p></p><p>XOR</p><p></p><p>0 | 70 | 70 | 70 | 70</p><p></p><p>=</p><p></p><p>0 | BYTE_4 XOR 70 | BYTE_3 XOR 70 | ITEM_ID | 129</p><p></p><p></p><p> This seems like it's in a format that would make more sense for the password decoder to read - the item ID can now just be read out instead of needing to apply a random 70 to it. It should also be noted that BYTE_3 XOR 70 is once again just another integer from 0 to 255 so we can consider this the random element (if you'd like a more technical definition, the XOR 70 operator is a bijective function on the set of integers from 0 to 255 to itself). We'll notate BYTE_3 XOR 70 as just "RAND" and BYTE_4 XOR 70 as "CHECK". Here's the breakthrough:</p><p></p><p>129 + ITEM_ID + RAND + CHECK = 0 mod 256</p><p></p><p>Hence,</p><p></p><p>CHECK = 127 - ITEM_ID - RAND mod 256</p><p></p><p></p><p> A slightly unusual checksum, but it makes a certain amount of sense. To verify the checksum, all the device would need to do is add the four bytes together and check that they equal zero (mod 256).</p><p></p><p>I have a generator spreadsheet ready for those who want to generate passwords using this now, but I'd prefer to get it into a more accessible state, so I'm writing up some javascript for this purpose instead. I'm also considering creating a sort of EnWarehouse-like program for this purpose too, once I figure out some of the other password systems as well.</p><p></p><p>I'll get the script out as soon as possible. Thanks to all those who have helped me on this journey!</p><p></p><p>---</p><p></p><p>EDIT: I've embedded the script into this page: <a href="https://hazzabobbo.wixsite.com/mamemamelabs/password-generator" target="_blank">https://hazzabobbo.wixsite.com/mamemamelabs/password-generator</a></p><p></p><p>The presentation is a bit sloppy for now but it's something I'm working on! There'll probably be some item IDs which don't work so any feedback is helpful.</p></blockquote><p></p>
[QUOTE="hwd45, post: 3367082, member: 160853"] It's been less than a day since my last update - normally I'd just edit my last post but I feel like it might be worth bumping the thread for this update. Unless I'm mistaken... I've figured out how the checksum works in the V3 passwords, thus cracking the algorithm. There's still more to understand - with this I'm only capable of generating half the allowed password combinations (which is still obviously more than is necessary, so it's not really a big deal) due to that one variable which, when turned on, seems to make everything more difficult. I think, after this most recent revelation, it should be easier to figure out, though. Recall that there's a five-byte structure to the passwords, which we'll represent as follows: BYTE_5 | BYTE_4 | BYTE_3 | BYTE_2 | BYTE_1 For now we'll set BYTE_5 to zero to make things a bit easier. Recall also that a username constant is XOR'd onto this structure - for now we'll pretend we've already XOR'd out this username factor so the username is no longer affecting the password. Since BYTE_5 is zero, we get the following password structure, just by the nature of how these passwords work: 0 | BYTE_4 | BYTE_3 | BYTE_2 | 199 BYTE_2 = ITEM_ID XOR 70 BYTE_3 may be any integer from 0 to 255 BYTE_4 may be the checksum? That random 70 was definitely raising my eyebrows and when adding together all of the bytes I noticed that the result I got most of the time was exactly 140 away from 256, a power of two. So I tried XORing out a couple 70s here and there: 0 | BYTE_4 | BYTE_3 | BYTE_2 | 199 XOR 0 | 70 | 70 | 70 | 70 = 0 | BYTE_4 XOR 70 | BYTE_3 XOR 70 | ITEM_ID | 129 This seems like it's in a format that would make more sense for the password decoder to read - the item ID can now just be read out instead of needing to apply a random 70 to it. It should also be noted that BYTE_3 XOR 70 is once again just another integer from 0 to 255 so we can consider this the random element (if you'd like a more technical definition, the XOR 70 operator is a bijective function on the set of integers from 0 to 255 to itself). We'll notate BYTE_3 XOR 70 as just "RAND" and BYTE_4 XOR 70 as "CHECK". Here's the breakthrough: 129 + ITEM_ID + RAND + CHECK = 0 mod 256 Hence, CHECK = 127 - ITEM_ID - RAND mod 256 A slightly unusual checksum, but it makes a certain amount of sense. To verify the checksum, all the device would need to do is add the four bytes together and check that they equal zero (mod 256). I have a generator spreadsheet ready for those who want to generate passwords using this now, but I'd prefer to get it into a more accessible state, so I'm writing up some javascript for this purpose instead. I'm also considering creating a sort of EnWarehouse-like program for this purpose too, once I figure out some of the other password systems as well. I'll get the script out as soon as possible. Thanks to all those who have helped me on this journey! --- EDIT: I've embedded the script into this page: [URL="https://hazzabobbo.wixsite.com/mamemamelabs/password-generator"]https://hazzabobbo.wixsite.com/mamemamelabs/password-generator[/URL] The presentation is a bit sloppy for now but it's something I'm working on! There'll probably be some item IDs which don't work so any feedback is helpful. [/QUOTE]
Insert quotes…
Verification
Post reply
Tamagotchi General
Tamagotchi Apps, TamaTown , e-Tamago and Codes
V3 Password Experimentation
Join the conversation!
Register today and take advantage of membership benefits.
It's FREE!
Participate in both public and private conversations with people that share your interest
Start new threads
See less ads
Enter your email address to join:
Thank you! Please check your email inbox to continue.
There's already a member associated with this email address. Please
log in
or
retrieve your password
.
Already a member?
Click here to log in
Don't like ads?
Did you know that registered members can turn off the ads?
Register today and take advantage of membership benefits.
Enter your email address to join:
Thank you! Please check your email inbox to continue.
There's already a member associated with this email address. Please
log in
or
retrieve your password
.
Already a member?
Click here to log in
Top