THE WRITER MUST EAT -> patreon.com/trn1ty <- | \ | | blah! |\ | `\|\ | the rantings and ravings |/ |(_|| | * of a depraved lunatic <^> 2024-06-19 : decrypting a /g/ riddle 4chan /g/ No.101048862: .section .data key: .byte 0x2A msg_len: .word 140 encrypted_msg: .byte 0x07, 0x44, 0x1E, 0x6B, 0x73, 0x17, 0x64, 0x12, 0x27, 0x24, 0x22, 0x6 B, 0x74, 0x12, 0x21, 0x64 .byte 0x00, 0x0B, 0x28, 0x64, 0x76, 0x00, 0x64, 0x17, 0x22, 0x0F, 0x76, 0x0 0, 0x7C, 0x17, 0x2D, 0x2B .byte 0x6F, 0x12, 0x64, 0x64, 0x00, 0x2A, 0x6F, 0x17, 0x22, 0x6B, 0x64, 0x1 2, 0x2C, 0x23, 0x7D, 0x73 .byte 0x64, 0x12, 0x22, 0x6B, 0x22, 0x6B, 0x0D, 0x22, 0x73, 0x12, 0x64, 0x6 B, 0x64, 0x17, 0x7D, 0x6F .byte 0x22, 0x64, 0x00, 0x0A, 0x64, 0x2B, 0x0A, 0x0B, 0x64, 0x2A, 0x2F, 0x6 A, 0x64, 0x12, 0x2D, 0x17 .byte 0x6F, 0x12, 0x64, 0x64, 0x00, 0x2A, 0x6F, 0x17, 0x22, 0x6B, 0x64, 0x1 2, 0x2C, 0x23, 0x7D, 0x73 .byte 0x64, 0x12, 0x22, 0x6B, 0x22, 0x6B, 0x0D, 0x22, 0x73, 0x12, 0x64, 0x6 B, 0x64, 0x17, 0x7D, 0x6F .byte 0x22, 0x64, 0x00, 0x0A, 0x64, 0x2B, 0x0A, 0x0B, 0x64, 0x2A, 0x2F, 0x6 A, 0x64, 0x12, 0x2D, 0x17 .byte 0x6F, 0x12, 0x64, 0x64, 0x00, 0x2A, 0x6F, 0x17, 0x22, 0x6B, 0x64, 0x1 2, 0x2C, 0x23, 0x7D, 0x73 .byte 0x64, 0x12, 0x22, 0x6B, 0x22, 0x6B, 0x0D, 0x22, 0x73, 0x12, 0x64, 0x6 B, 0x64, 0x17, 0x7D, 0x6F .byte 0x22, 0x64, 0x00, 0x0A, 0x64, 0x2B, 0x0A, 0x0B, 0x64, 0x2A, 0x2F, 0x6 A, 0x64, 0x12, 0x2D, 0x17 .byte 0x6F, 0x12, 0x64, 0x64, 0x00, 0x2A, 0x6F, 0x17, 0x22, 0x6B, 0x64, 0x1 2, 0x2C, 0x23, 0x7D, 0x73 .byte 0x64, 0x12, 0x22, 0x6B, 0x22, 0x6B, 0x0D, 0x22, 0x73, 0x12, 0x64, 0x6 B, 0x64, 0x17, 0x7D, 0x6F .byte 0x22, 0x64, 0x00, 0x0A, 0x64, 0x2B, 0x0A, 0x0B, 0x64, 0x2A, 0x2F, 0x6 A, 0x64, 0x12, 0x2D, 0x17 You should be able to decrypt this. Alright, well, all of these values are 7-bit (none of the first nybbles of the given bytes exceed 0b0111). Do you see a pattern? It's easier because of my blah formatting. Every cut-off line starts back in on 0x2 (0b0010), 0xA (0b1010), or 0xB (0b1011). Every third byte of a line alternates between 0x64 (0b 0110 0100), 0x22 (0b 0010 0010), and 0x00 (all zeroes). So this sequence is patterned in some way. Because the key is a single byte I assume this is some sort of Caesar cypher esque secret [op] key = clear so let's start with that. The key is 0x2A. Because it's summer and 4chan this is probably simple so let's start with low hanging fruit. $ ascii 2a ASCII 2/10 is decimal 042, hex 2a, octal 052, bits 00101010: prints as `*' Official name: Asterisk Other names: Star, Splat, Aster, Times, Gear, Dingle, Bug, Twinkle, Glob 0x64 XOR 0x2A = 'N' 0x22 XOR 0x2A = ASCII_LS1 I assume control characters besides usual whitespace won't be a part of the input so it's not an XOR thing. Nor addition as bytes exceed 0x70 (and therefore addition would put the values past valid ASCII). Nor subtraction as 0x00 occurs and that would underflow to either negative values (signed) or values past 0x80 (unsigned), again, invalid ASCII. I wanna see this better. I'm tossing the key line so remember it's 0x2A. $ tail -n +5 | sed s:^.'*'byte.:: | tr -d , 0x07 0x44 0x1E 0x6B 0x73 0x17 0x64 0x12 0x27 0x24 0x22 0x6B 0x74 0x12 0x21 0x64 0x00 0x0B 0x28 0x64 0x76 0x00 0x64 0x17 0x22 0x0F 0x76 0x00 0x7C 0x17 0x2D 0x2B 0x6F 0x12 0x64 0x64 0x00 0x2A 0x6F 0x17 0x22 0x6B 0x64 0x12 0x2C 0x23 0x7D 0x73 0x64 0x12 0x22 0x6B 0x22 0x6B 0x0D 0x22 0x73 0x12 0x64 0x6B 0x64 0x17 0x7D 0x6F 0x22 0x64 0x00 0x0A 0x64 0x2B 0x0A 0x0B 0x64 0x2A 0x2F 0x6A 0x64 0x12 0x2D 0x17 0x6F 0x12 0x64 0x64 0x00 0x2A 0x6F 0x17 0x22 0x6B 0x64 0x12 0x2C 0x23 0x7D 0x73 0x64 0x12 0x22 0x6B 0x22 0x6B 0x0D 0x22 0x73 0x12 0x64 0x6B 0x64 0x17 0x7D 0x6F 0x22 0x64 0x00 0x0A 0x64 0x2B 0x0A 0x0B 0x64 0x2A 0x2F 0x6A 0x64 0x12 0x2D 0x17 0x6F 0x12 0x64 0x64 0x00 0x2A 0x6F 0x17 0x22 0x6B 0x64 0x12 0x2C 0x23 0x7D 0x73 0x64 0x12 0x22 0x6B 0x22 0x6B 0x0D 0x22 0x73 0x12 0x64 0x6B 0x64 0x17 0x7D 0x6F 0x22 0x64 0x00 0x0A 0x64 0x2B 0x0A 0x0B 0x64 0x2A 0x2F 0x6A 0x64 0x12 0x2D 0x17 0x6F 0x12 0x64 0x64 0x00 0x2A 0x6F 0x17 0x22 0x6B 0x64 0x12 0x2C 0x23 0x7D 0x73 0x64 0x12 0x22 0x6B 0x22 0x6B 0x0D 0x22 0x73 0x12 0x64 0x6B 0x64 0x17 0x7D 0x6F 0x22 0x64 0x00 0x0A 0x64 0x2B 0x0A 0x0B 0x64 0x2A 0x2F 0x6A 0x64 0x12 0x2D 0x17 Oh, this is extremely patterned. I wonder what this looks like in hexdump(1)? $ tail -n +5 | sed s:^.'*'byte.:: | tr -d ' ', | sed s:0x:'\\'x:g \ | xargs -0 printf | hexdump -C 00000000 07 44 1e 6b 73 17 64 12 27 24 22 6b 74 12 21 64 |.D.ks.d.'$"kt.!d| 00000010 0a 00 0b 28 64 76 00 64 17 22 0f 76 00 7c 17 2d |...(dv.d.".v.|.-| 00000020 2b 0a 6f 12 64 64 00 2a 6f 17 22 6b 64 12 2c 23 |+.o.dd.*o."kd.,#| 00000030 7d 73 0a 64 12 22 6b 22 6b 0d 22 73 12 64 6b 64 |}s.d."k"k."s.dkd| 00000040 17 7d 6f 0a 22 64 00 0a 64 2b 0a 0b 64 2a 2f 6a |.}o."d..d+..d*/j| 00000050 64 12 2d 17 0a 6f 12 64 64 00 2a 6f 17 22 6b 64 |d.-..o.dd.*o."kd| 00000060 12 2c 23 7d 73 0a 64 12 22 6b 22 6b 0d 22 73 12 |.,#}s.d."k"k."s.| 00000070 64 6b 64 17 7d 6f 0a 22 64 00 0a 64 2b 0a 0b 64 |dkd.}o."d..d+..d| 00000080 2a 2f 6a 64 12 2d 17 0a 6f 12 64 64 00 2a 6f 17 |*/jd.-..o.dd.*o.| 00000090 22 6b 64 12 2c 23 7d 73 0a 64 12 22 6b 22 6b 0d |"kd.,#}s.d."k"k.| 000000a0 22 73 12 64 6b 64 17 7d 6f 0a 22 64 00 0a 64 2b |"s.dkd.}o."d..d+| 000000b0 0a 0b 64 2a 2f 6a 64 12 2d 17 0a 6f 12 64 64 00 |..d*/jd.-..o.dd.| 000000c0 2a 6f 17 22 6b 64 12 2c 23 7d 73 0a 64 12 22 6b |*o."kd.,#}s.d."k| 000000d0 22 6b 0d 22 73 12 64 6b 64 17 7d 6f 0a 22 64 00 |"k."s.dkd.}o."d.| 000000e0 0a 64 2b 0a 0b 64 2a 2f 6a 64 12 2d 17 0a |.d+..d*/jd.-..| The 0x0As here are from the input formatting itself. Let's ditch 'em. $ tail -n +5 | sed s:^.'*'byte.:: | tr -d ' \n', | sed s:0x:'\\'x:g \ | xargs -0 printf | hexdump -C 00000000 07 44 1e 6b 73 17 64 12 27 24 22 6b 74 12 21 64 |.D.ks.d.'$"kt.!d| 00000010 00 0b 28 64 76 00 64 17 22 0f 76 00 7c 17 2d 2b |..(dv.d.".v.|.-+| 00000020 6f 12 64 64 00 2a 6f 17 22 6b 64 12 2c 23 7d 73 |o.dd.*o."kd.,#}s| 00000030 64 12 22 6b 22 6b 0d 22 73 12 64 6b 64 17 7d 6f |d."k"k."s.dkd.}o| 00000040 22 64 00 0a 64 2b 0a 0b 64 2a 2f 6a 64 12 2d 17 |"d..d+..d*/jd.-.| 00000050 6f 12 64 64 00 2a 6f 17 22 6b 64 12 2c 23 7d 73 |o.dd.*o."kd.,#}s| 00000060 64 12 22 6b 22 6b 0d 22 73 12 64 6b 64 17 7d 6f |d."k"k."s.dkd.}o| 00000070 22 64 00 0a 64 2b 0a 0b 64 2a 2f 6a 64 12 2d 17 |"d..d+..d*/jd.-.| 00000080 6f 12 64 64 00 2a 6f 17 22 6b 64 12 2c 23 7d 73 |o.dd.*o."kd.,#}s| 00000090 64 12 22 6b 22 6b 0d 22 73 12 64 6b 64 17 7d 6f |d."k"k."s.dkd.}o| 000000a0 22 64 00 0a 64 2b 0a 0b 64 2a 2f 6a 64 12 2d 17 |"d..d+..d*/jd.-.| 000000b0 6f 12 64 64 00 2a 6f 17 22 6b 64 12 2c 23 7d 73 |o.dd.*o."kd.,#}s| 000000c0 64 12 22 6b 22 6b 0d 22 73 12 64 6b 64 17 7d 6f |d."k"k."s.dkd.}o| 000000d0 22 64 00 0a 64 2b 0a 0b 64 2a 2f 6a 64 12 2d 17 |"d..d+..d*/jd.-.| 000000e0 As cool as it is to actually /see/ the data this hasn't gotten us anywhere closer to solving the riddle. By the way, this is my first time doing something like this and I have entirely no clue what I'm doing. I think I'm barking up the right tree because, ignoring addresses <0x20, every column has at most three unique values. I asked a roommate and it said it didn't know and asked why I was wasting my time on /g/ riddles. The message length is 140d bytes but the encrypted length is 0xE0 (224d) bytes. The first two rows don't fit the pattern so perhaps they're a 32d byte header. That would be 192d bytes for a 140d byte message? Does this repeat? 00000000 07 44 1e 6b 73 17 64 12 27 24 22 6b 74 12 21 64 |.D.ks.d.'$"kt.!d| 00000010 00 0b 28 64 76 00 64 17 22 0f 76 00 7c 17 2d 2b |..(dv.d.".v.|.-+| 00000020 6f 12 64 64 00 2a 6f 17 22 6b 64 12 2c 23 7d 73 |o.dd.*o."kd.,#}s| 00000030 64 12 22 6b 22 6b 0d 22 73 12 64 6b 64 17 7d 6f |d."k"k."s.dkd.}o| 00000040 22 64 00 0a 64 2b 0a 0b 64 2a 2f 6a 64 12 2d 17 |"d..d+..d*/jd.-.| 00000050 6f 12 64 64 00 2a 6f 17 22 6b 64 12 2c 23 7d 73 |o.dd.*o."kd.,#}s| 00000060 64 12 22 6b 22 6b 0d 22 73 12 64 6b 64 17 7d 6f |d."k"k."s.dkd.}o| 00000070 22 64 00 0a 64 2b 0a 0b 64 2a 2f 6a 64 12 2d 17 |"d..d+..d*/jd.-.| 00000080 6f 12 64 64 00 2a 6f 17 22 6b 64 12 2c 23 7d 73 |o.dd.*o."kd.,#}s| 00000090 64 12 22 6b 22 6b 0d 22 73 12 64 6b 64 17 7d 6f |d."k"k."s.dkd.}o| 000000a0 22 64 00 0a 64 2b 0a 0b 64 2a 2f 6a 64 12 2d 17 |"d..d+..d*/jd.-.| 000000b0 6f 12 64 64 00 2a 6f 17 22 6b 64 12 2c 23 7d 73 |o.dd.*o."kd.,#}s| 000000c0 64 12 22 6b 22 6b 0d 22 73 12 64 6b 64 17 7d 6f |d."k"k."s.dkd.}o| 000000d0 22 64 00 0a 64 2b 0a 0b 64 2a 2f 6a 64 12 2d 17 |"d..d+..d*/jd.-.| 000000e0 Hm. I'm a little stumped. I went back to the thread and checked for clues. One anon XORed and gave up and the others are discussing whether trans people deserve to live. I hate summer vacation. All the small children have come off /pol/ and are thirsty for blood. 0x2A is 0b 0010 1010. Maybe the alternating 01s is a clue. Actually, I don't care anymore. : 2 years of blahbbing Today is Juneteenth and also the second anniversary of my blah. In the last two years I went from being an 18 year old depressed burger serf who spent all her time writing and programming deranged shit to being a 20 year old depressed burger serf who spends all its time sleeping and working, but also on the other side of the country and with some more friends now. Still, I am tired, and you must forgive me if one day I give up on trying to get to the point where I don't have to work so much. I don't remember an awful lot of these last two years but I remember the people. Usagi, M--, another person, and on-line Emma Tebibyte and the rest of Tebibyte Media, Veronika, the administrators of murderu.us (and especially suika who does basically all of the work on the server). Helping others is why I keep going and I hope I've had some sort of positive impact. There are a lot of people I miss. My blah has been perused by hopefully less than two dozen people which makes it special to me as a novel-length mostly nonsensical and often incoherent &rt;700K obscure Internet oddity that I have created. It hasn't been posted anywhere on social media (though, feel free to share it on Hacker News, but anywhere more popular is off limits) and even my close friends haven't read all of it. This is indexed on DuckDuckGo which I should figure out how to prevent but not on Google so hopefully I've not been violated in passing by corporate scraper scum. I don't have much more to say. I'm gonna start celebrating the blah anniversary ("celebrating") on 06-20 to avoid the collision with Juneteenth. Also happy anniversary to the creation of X Windows. okbye <^> No rights reserved, all rights exercised, rights turned to lefts, left in this corner of the web.