bitcrafting laboratory

This Puzzle Does Not Exist

background

First of all, credit where is credit is due. As with many deep learning projects, nothing is possible without the work of real, talented humans beforehand.

Therefore I would like to thank Tuesday Quest with their Hungry Cat Nonogram (Android, iOS). Especially shoutout to Sev_4Game for her incredibly beautiful artworks. As we will see, the rules can be learned, but what makes a beautiful pixel is not possible.

Please check out their work and suscribe to their games!

[Read more]

Marcan’s tis101 crackme

Here are my findings in the challenge by marcan codenamed ‘crackme.tis101’

Setup

The challenge is available at the following URLs:

  • nc marcan.st 10847 preferred
  • telnet marcan.st 10847

If you telnet the following url and port, we are greeted with the follwing prompt (does not vary):

================================================================================
           WELCOME TO THE TIS-101 DEVELOPMENT AND TEST ENVIRONMENT
================================================================================
Enter object code followed by NEWLINE:

We need object code to be sent after this. Marcan provides such an object code at the following URLs:

[Read more]

Vampire Crawlers Save Game Reverse Engineering

screenshot_from_steam

I stumbled on Vampire Crawlers and being a fan of such games, I played the demo and bought it afterwards.

But of course, while playing the game is fun, I always ask myself if there is any protection against “save modification” (e.g., cheats). Come with me as I walk through the small act of reverse engineering the protection.

Gathering information

First of all, the save game location is, on Windows %USERPROFILE%/AppData/LocalLow/Nosebleed Interactive/Vampire Crawlers/Save.

[Read more]

The strange case of Golang + Reddit RSS

Recently, while working on goeland, I ran some test on reddit’s RSS feeds.

While it worked fine in the past, in the last few months with update to golang 1.17, people started complaining that reddit was rejecting their requests. While if you do the same request with curl, it works, with golang you would get a 429 error code.

The solution outlined on reddit was alike:

req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("User-Agent", "Custom Agent")
var defaultClient = http.Client{
    Transport: &http.Transport{
	TLSNextProto: map[string]func(authority string, c *tls.Conn) http.RoundTripper{},
    },
}
resp, _ := defaultClient.Do(req)

 

[Read more]