Wrapping John the Ripper in a PyQt5 GUI on Windows: Architecture and Hard-Won Lessons
Wrapping John the Ripper in a PyQt5 GUI on Windows In the first article of this series, I introduced Kaloya PDF Cracker and explained the problem it solves. In this post, I want to go deeper into t...

Source: DEV Community
Wrapping John the Ripper in a PyQt5 GUI on Windows In the first article of this series, I introduced Kaloya PDF Cracker and explained the problem it solves. In this post, I want to go deeper into the technical decisions and the specific challenges I ran into while building it. This is a walkthrough of three problems that took real effort to solve correctly: Keeping the GUI responsive while the cracking engine runs Getting automatic Administrator elevation without any user configuration Packaging everything into a single professional Windows installer The Application Architecture The codebase is split into three clean, independent layers. This separation is not just organisational — it is what allows the application to be extended, tested, and maintained without one layer breaking another. +-----------------------------------------------+ | PyQt5 Presentation Layer | | main_window.py + gui/styles.qss | +-----------------------------------------------+ | signals & slots | +----------