New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create a Snappy Ubuntu package for JtR #2118
Comments
Thinking loud:
|
Ubuntu Core (150MB download) running inside kvm. $ ./john -test=0 The basic stuff works fine, but the overall quality is low. Anyway, when the environment matures, it might be very useful. $ kvm -m 512 -redir :8090::80 -redir :8022::22 ubuntu-snappy-amd64.img & |
|
|
|
Working:
|
Just in case something unexpected appears on john-users:
The package itself works (real-world tests needed). No announcement done or planned for a while. |
Claudio, I just want to let you know that I appreciate your work on this. Thank you! |
Using dlopen for OpenCL would take a fair amount of work but is definitely doable (Hashkill does that). Now that I think about it, doing the same for MPI should be much easier. I'll open issues for these. |
This make sense and is going to be very useful. If you use a fallback executable, it can be much easier, no?
BTW:
Keep this in mind to make your final decision. |
Wow that is a quick solution... and it should work just fine. I never thought of that! |
On the other hand we've been discussing doing the opposite: Include code for SSE2/3/4.1, AVX, AVX2 and whatnot in a single binary, that picks code path at run time. That together with real use of |
The ugly
The other path (one binary for everything) has pros and cons. An important: Invasive. Could frighten people. |
We currently have SSE2, SSSE3, SSE4.1, AVX and AVX2 on one hand, and OMP/non-OMP on the other. That's 2x5 == 10 combinations. Adding AVX512, OpenCL and MPI to the mix will mean 2x2x2x6 == 48 combinations... not to mention the time for building them. |
But for this Snappy thing (which I have yet to get acquainted with) like you said you can just build with OpenCL and MPI support and ensure the run-time libs are included. The functionality will not hurt at all even if unused. |
If you need to try it yourself (disclaimer: Ubuntu Core 16.04 is under construction, you will notice that the welcome message is simply wrong). On a deb base system On Fedora (my guess) On the fancy OS Obtain Ubuntu Core image (200MB)
Launch the VM Access the VM (user and password are "ubuntu") Install JtR (70MB) Test if John is working properly
Obs: John the Ripper Jumbo with CPU and OpenMP fallback. |
John the Ripper Jumbo with:
|
What happens if you run Should OpenCL formats be listed only
I.e., do we need to adjust the output of
in the This might be useful for bash completion, for johnny (the gui) or just for somehow letting the jtrTestSuite know that opencl formats can't be tested. Time to add a |
It works. I already worked around it. But I guess the final solution will be to register (inside john_register_one) an OpenCL format only if (get_number_of_available_devices() > 0). There are even more use cases requiring to change registering:
Edge cases to be solved otherwise
That said:
[1] (Have to check) this won't happen for a -format=xxx-cpu-only run. |
Sorry, read the previous comment on GitHub site. |
Well, since I was unable to find a better approach, I intend to:
CPU only (CPU fallback, OMP fallback, regex, etc) CPU + OpenCL (CPU fallback, OMP fallback, regex, etc) So, one snap will have all 16 john binaries.
Of course, we can shrink the package creating one snap for OpenCL, one for MPI, ... Comments are welcome. |
Create a JtR package for Windows 10 (zip or Windows Store).Testing Ubuntu binaries of John the Ripper Jumbo on Windows 10 64bits.
Notice:
PS: not sure if one can publish using a free Vistual Studio. Working
|
Tested so far:
[1] Using the same machine via dual booting. Ubuntu 16.04 LTS snap app. |
Since we already have hundreds of installations, I intend to publish this on john-users: Greetings For some time now, we have a John the Ripper SNAP package available on Ubuntu Store. The plan is to release it as stable and tested, but offering recent bug fixes and improvements. To install it, on Ubuntu 16.04 LTS, you only need to run a: To test it, do: John run confined under a restrictive security sandbox by default. For example, it won't be able to read or write any file outside its "box". So, word-lists, hash files, and so on, should be copied to the "box". Below, an example: The highlights:
More information at #2118. Feedback is welcome. Happy cracking |
For the record. More info at: https://lists.ubuntu.com/archives/snapcraft/2016-June/000193.html
|
There is an armhf (arm7) version available on Ubuntu Store for a week or so. It has:
|
Well, I dont have hardware to develop and test the changes needed in Ubuntu Core to allow OpenCL confined. I intend to create a workaround. Notice:
The procedure is:
|
Posting the message below to john-users and closing:BTW: it is possible to run the JtR openCL binary using the workaround seen below (notice: 12 is the current/desired revision [1]): Cracking using the CPU and/or the OpenCL version: Just in case you have ARM hardware, there are armhf and arm64 JtR versions available on Ubuntu Store. They have:
If your distro already accepts the snap format (without a store), it is possible to download the reviewed snap package from: https://uappexplorer.com/app/john-the-ripper.claudioandre-br Claudio [1] Rev 12 means commit: 36a7264 from July 29th. Execute a sudo snap refresh and/or snap list to assure you have the latest version installed. |
I just created a readme file (since I started to wonder details about the package). Everything is there, even the new fancy stuff. BTW: nice to see; strong foundations, high-quality software engineering. |
More notes at: |
So, when we have this available, users can install JtR via Ubuntu Store.
[1] Ubuntu 16.04 LTS introduces the snappy Ubuntu Core experience to the desktop by allowing you to create, install and distribute snaps (snappy apps).
The text was updated successfully, but these errors were encountered: