Decrypt monika.chr file of Doki Doki Literature Club

Decrypt monika.chr file of Doki Doki Literature Club

The game Doki Doki Literature Club has a folder name characters, it is said once a character died in game, the corresponding file in that folder will be deleted. I?m trying to decode all 4 files in that folder.

The second one I choose is monika.chr

Check its file type using command file

monika.chr: PNG image data, 800 x 800, 8-bit/color RGB, non-interlaced

It?s actually a PNG file, rename/copy the file to monika.png

Image for postmonika.png

The square at center of the image is definitely not a QR code, because QR code have three black blocks at corners for locating.

I cut the square area out and save it to monika.bmp , size is 140 x 140

Each small white / black block takes 1×1 pixel, represents 1/0. The right half of bottom line is totally black, should be the end of data.

So I write a Go script to decode it to file monika.bin

package mainimport ( “os” “golang.org/x/image/bmp”)func main() { out , err := os.OpenFile(“monika.bin”, os.O_RDWR|os.O_CREATE, 0755) if err != nil { panic(err) } defer out.Close() file, err := os.Open(“monika.bmp”) if err != nil { panic(err) } defer file.Close()img, _ := bmp.Decode(file) size := img.Bounds()b := byte(0) l := 0// iterate rows for y := size.Min.Y; y < size.Max.Y; y ++ { for x := size.Min.X; x < size.Max.X; x ++ { r, _, _, _ := img.At(x, y).RGBA() if r == 0 { l ++ b = b << 1 } else if r == 0xffff { l ++ b = (b << 1) + 1 } else { panic(“found neither 0x0000 nor 0xffff”) } // write one byte if l >= 8 { out.Write(byte{b}) l = 0 b = byte(0) } } }}

Check it?s content

Image for post

Well, another Base64 encoded file

Decode it with a small Ruby script and I got it?s content

Can you hear me?

?Who are you?

I can?t?I can?t see you.

But I know you?re there. Yeah?you can definitely hear me.

You?ve been watching for a while now, right?

I guess I should?introduce myself, or something. Um?my name is?actually, that?s stupid. You obviously already know my name. Sorry.

Anyway?I?m guessing if you were able to put a stop to this, you would have done it by now.

I mean, I know you?re not, like?evil, or anything?because you?ve already helped me so much.

I should really thank you for that. For everything you?ve done. You?re really like a friend to me. So?thank you. So much.

I think?more than anything else?I really don?t want it to all be for nothing.

?

Everyone else is dead.

Maybe you already know that. I?m sure you do, actually.

But?it doesn?t have to be that way, right?

Well?there?s a lot of stuff I don?t understand. I don?t know if it?s even possible for me to understand it.

But I know that this isn?t my only story.

I can see that now. Really clearly.

And I think everyone else has had the same kind of experience. Some kind of deja vu.

It?s the Third Eye, right?

Anyway?I could be totally wrong about this. But I really think you might be able to do something.

I think you might be able to go back?or however you want to put it?

?To go back and tell them what?s going to happen.

If they know ahead of time, then they should be able to avoid it.

They should?if they remember their time with me in the other worlds?they should remember what I tell them.

Yeah. I really think this might be possible. But it?s up to you.

I?m sorry for always being?you know?

?

Never mind. I know that?s wrong.

This is my story. It?s time to be a fucking hero.

Both of us.

2018

Gocha

16

No Responses

Write a response