Giter Club home page Giter Club logo

minecrack's Introduction

minecrack

minecrack can recover the full 64 bits seed of a Minecraft map from some of the map features.

minecrack is the first program to crack Minecraft seeds that recovers the full 64 bits seed without relying on assumptions on how the seed was generated. Almost all seeds can be retrieved (see limitations). The program is fully multithreaded.

With the current implementation, the seed is recovered in two steps:

  • minecrack-slime: 48 bits are obtained from a list of slime chunk coordinates
  • minecrack-biome: the 48 bits candidates are tested for the remaining 16 bits by giving known biome coordinates.

The biome check has two implementations:

  • minecrack-biome: a C++ version which uses the cubiomes library, a reimplementation in C of the Minecraft default world type generation
  • minecrack-biome-java.jar: a Java version that calls directly the original Minecraft world generation code (through Amidst)

The C version is obviously very fast, but it is the result of a reverse-engineering, and support for future versions of Minecraft (>= 1.15) is uncertain. The Java version is reasonably fast but ensures maximum compatibility, and it works with any world type (default, amplified, custom...).

Building

Install JDK version >= 8, Maven, Boost.Program_options, then run:

git clone --recurse https://github.com/pisto/minecrack.git
mkdir minecrack/build
cd minecrack/build
cmake -DCMAKE_BUILD_TYPE=Release ..
#export JAVA_HOME=...
make

Crack a seed

First collect 15 or more slime chunk coordinates (chunk coordinates are world coordinates divided by 16 and rounded towards 0, the coordinates can be obtained from the debug screen). Then invoke minecrack-slime and append the chunk coordinates in X:Z format:

minecrack-slime -- 0:-96 0:-93 0:-77 0:-74 0:-73 0:-64 0:-55 0:-51 0:-50 0:-49 0:-46 0:-25 0:-4 0:11 0:30 0:37 0:44 > 48bit

The output file 48bit will contain all possible 48 bits map seeds that can generate the specified slime chunks.

These results are then passed to either minecrack-biome or minecrack-biome-java.jar, which output the final candidate seed(s). In both cases you need to provide a number of biome samples: just walk around in the map and every 100 blocks or so write down the block coordinate and the biome name, as shown in the debug screen. Then, invoke one of the two implementations.

minecrack-biome

Format the biome samples as X:Z:biome_name, and append them to the invokation:

minecrack-biome -m 1.14 -- -212:-8:mushroom_fields 1044:-776:mountains -1208:-1004:swamp -2408:-796:desert_hills -5622:-1596:river -4608:4267:frozen_ocean < 48bit

The Minecraft version is specified with -m <version>. Only use the major version number (e.g. 1.14 even if the server runs 1.14.4). The supported versions are from 1.7 through 1.14, and BE for the Bedrock Edition.

minecrack-biome-java

First make sure that you have the desired specific version of Minecraft installed. You can do so by creating a new Minecraft profile in the Minecraft launcher, and start the game once. Then, format the biome samples just as for minecrack-biome, and invoke minecrack-biome-java.jar:

java -jar minecrack-biome-java.jar -m 1.14.4 -- -212:-8:mushroom_fields 1044:-776:mountains -1208:-1004:swamp -2408:-796:desert_hills -5622:-1596:river -4608:4267:frozen_ocean < 48bit

The Minecraft version is specified with -m <version> and it has to be the same string as shown in the Minecraft launcher (like 1.13.2 or 19w34a). The -t <type> argument specifies the world type (default, flat, largeBiomes, amplified, customized). The generator options can be set with the argument -g <string>, but use this parameter only if you know what you are doing. The Java version will use Amidst internally to locate your Minecraft installation (.minecraft), attach to it and run the tests. If your Minecraft installation is in a non-standard path, pass the argument --mcpath <path_to_.minecraft>.

Technical details

To come later.

minecrack's People

Contributors

pisto avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

cyberflamego

minecrack's Issues

Unclear biome-crack instructions

In the readme it states to enter the biomes as X:Z:BiomeName which is nice but I do not know if that means chunk coordinates or player coordinates. The examples given made it seem like player coordinates but am I wrong? The program seems to freeze either way I try.

Is it possible to use minecrack-biome independent of minecrack-slime?

Considering that there is a bedrock flag in minecrack-biome, bedrock support must have at least been on the list. However, bedrock slime chunks are independent of the seed, so minecrack-slime won't generate any useful candidates at all. Is there a way to make minecrack-biome try for all possible bedrock seeds (32 bit) instead of trying for top 16 bit from the lower 48 bit candidates?

Hoow 2 usE? ??

HI ,
I dUnno howz 2 use thiss.
U see im kind of dumb for thesee sorts of things
when i cilick it canceld
Thiz dosnt w0rk
pls halp

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.