Dennis Yurichev's blog
Main topics: CS, math, reverse engineering, SAT/SMT solvers, tinkering with *NIX...
Follow my new blog.
- [Math] Drawing a circle, point-by-point, without floating point support (2022-Mar-22)
- [Math] How I rented a flat with the help of calculus (2022-Mar-22)
- [Unix] Using the 'uniq -c' command to get some statistics, part II (2022-Mar-21)
- [Math] Drawing clock with sin()/cos() (2022-Mar-21)
- [Unix] Using the 'uniq -c' command to get some statistics (2022-Feb-25)
- [Crypto] Cracking Diffie–Hellman key exchange using CADO-NFS + Logjam SSL/TLS attack (2022-Feb-25)
- [SAT] UNSAT proofs (2022-Feb-18)
- [Math] Primitive root (2022-Feb-17)
- [Math] Remainder as a checksum (2022-Feb-16)
- [Crypto] Two factor auth, RSA tokens (2022-Feb-15)
- [Crypto] Licensing your software with OpenSSL. Using license keys. Software copy-protection. (2022-Feb-14)
- [C/C++][Assembly][RevEng] Understanding C/C++ code by compiling it (2022-Feb-14)
- Software copy protection/licensing (2022-Feb-12)
- [C/C++] Yet another explanation of C/C++ pointers (2022-Feb-12)
- [Crypto] How to crack RSA-512 on off-the-shelf hardware in 4 days (2022-Feb-10)
- [Unix] Maildir, mutt and vim (2022-Feb-05)
- Translating my books (2022-Feb-04)
- [Math] Injective, surjective, bijective functions (2022-Feb-03)
- [English] Powershell: cmdlet, funclet, etc (2022-Feb-01)
- [Chess] Knight's movements (2022-Feb-01)
- [Unix] Load average (2022-Jan-24)
- [Wolfram] Wordclouds for your book library (2022-Jan-16)
- [RevEng] Orthodox file managers (2022-Jan-03)
- [RevEng] Challenge/keygenme #88 (2021-Dec-31)
- [Math] If and only if (IFF) in programming (2021-Dec-30)
- [Pure C] Why memcpy/strcpy/strcat return a value? (2021-Dec-27)
- CRC32(32-bit buffer) is a bijective function (2021-Dec-24)
- [Python] Pointers/references in Python (2021-Dec-23)
- [Python] Russell's (Barber) paradox explanation in Python (2021-Dec-16)
- [RevEng] Const correctness in C/C++ (2021-Dec-02)
- Expired domains in the most popular Wikipedia articles (2021-Nov-30)
- How to learn Regular Expressions (2021-Nov-26)
- setjmp/longjmp (2021-Nov-24)
- [Math][Python] Shift array using modulo arithmetic or remainder operation (2021-Nov-23)
- [Racket] Split current directory to smaller chunks (2021-Nov-17)
- [Racket] Remove longest common prefix from a group of filenames (2021-Nov-16)
- [RevEng] Find CRC utility (2021-Nov-14)
- [Racket][Math] Deciphering Uber rating (2021-Nov-12)
- [Russian] Как своевременно лочить ресурсы в Макдоналдсе (2021-Nov-07)
- [Unix] Determining file versions using 'join' command (2021-Oct-16)
- [Assembly] Position-independent code (2021-Oct-15)
- [RevEng] Processing multiple executables in IDA (2021-Oct-12)
- Simplest possible intro to finite state machines (2021-Oct-12)
- Weird sort algorithm: verification using KLEE (2021-Oct-08)
- Fun with regular expressions and verification using CBMC: part IV (2021-Aug-19)
- Fun with regular expressions: part III (2021-Aug-19)
- Fun with regular expressions: part II (2021-Aug-19)
- Fun with regular expressions: part I (2021-Aug-19)
- [Racket] Filetree stat by month (2021-Jul-29)
- [Python] A problem for Python hackers: the solution (2021-Jul-26)
- Donald Knuth's SAT solvers (2021-Jul-22)
- [Russian] Поиск опечаток в русскоязычной и украиноязычной Wikipedia (2021-Jul-19)
- Hunting for typos in Wikipedia (2021-Jul-17)
- [Russian][Video] Мой рассказ о SAT/SMT летом 2021, в Zoom-е (2021-Jul-16)
- [Python] A problem for Python hackers. How good your knowledge is? (2021-Jul-07)
- base64scanner (2021-Apr-22)
- Boyer-Moore string search algorithm explanation and formal verification using CBMC (2021-Apr-21)
- [Unix] Using GeoIP from commandline (2021-Apr-14)
- Bayes classifier for your books (2021-Apr-13)
- [Unix] Translating a text from screenshot (2021-Apr-09)
- [Unix] The most primitive local search engine for your books library (2021-Apr-03)
- Reverse Engineering for Beginners published in Korean language (2021-Apr-01)
- 'SAT/SMT by Example' book: 5-year anniversary (2021-Feb-24)
- [Math] Latin squares for programmer (2021-Feb-22)
- [Algo] Rolling hash; Rabin-Karp string search (2021-Feb-05)
- [Math] IEEE 754 round-off errors (2021-Jan-31)
- Yet another use of regex backreferences (2021-Jan-21)
- Knuth-Morris-Pratt string-searching algorithm (part III): DFA-less version (2021-Jan-21)
- Knuth-Morris-Pratt string-searching algorithm (part II): DFA version (2021-Jan-21)
- Knuth-Morris-Pratt string-searching algorithm (part I) + my homebrew algorithms formally verified using CBMC (2021-Jan-21)
- Some of (remote) git internals, part II (2021-Jan-17)
- [Russian][Math][Python] Ломаем пароль при помощи комбинаторики и mixed radix (2021-Jan-16)
- [Russian][Math] Как пить таблетки применяя наименьшее общее кратное (НОК) (2021-Jan-15)
- [Russian][Math] Как я снимал квартиру при помощи мат.анализа (2021-Jan-14)
- [Unix] Tracking changes on web1.0-style websites (2021-Jan-05)
- [Unix] Gauging size of a directory available via Apache webserver index (2021-Jan-05)
- [Math] 'Two parks' problem and inclusion–exclusion principle using boolean operations (2021-Jan-04)
- Some of git internals (updated) (2020-Dec-20)
- Impact of order of files in tar archive on compressed size (2020-Oct-21)
- [Math] Set theory explanation via boolean operation (2020-Oct-16)
- [Russian] Что такое NP-проблемы: для неспециалистов (2020-Oct-11)
- [Russian] математический анекдот (исправил ошибку) (2020-Oct-09)
- Math for programmers (2020-Sep-27)
- A reverse engineering challenge: an intricate visual pattern in 39 bytes: the solution (2020-Sep-02)
- [Python][SAT] Toy package manager under 200 SLOC on top of SAT solver (2020-Sep-01)
- [IDAPython] Generating nice callgraphs, part II. (2020-Aug-23)
- [Russian] Копи-центры в Украине (2020-Aug-19)
- RE4B in Polish: Inżynieria wsteczna dla początkujących (2020-Aug-19)
- [Books] On (technical/scientific) writing (2020-Aug-01)
- [SAT] UNSAT core (2020-Aug-01)
- A reverse engineering challenge: an intricate visual pattern in 39 bytes (2020-Jul-31)
- Pintool: tracking 'CALL 0' and 'JMP 0' instruction (2020-Jul-26)
- [Russian] Задачи по программированию (2020-Jul-21)
- [Racket] SplitBy function I always wanted + fortune program in ~5 SLOC (2020-Jul-09)
- [Linux] Lenovo Thinkpad T500 WiFi issue (2020-Jul-04)
- Cracking my old Tiny C obfuscator (2020-Jul-03)
- [Linux] The most primitive clipboard manager you can ever find (2020-Jul-03)
- [Books] Algorithms (2020-Jul-03)
- SAT solver on top of regex matcher (2020-Jun-21)
- [Russian] KasperskyOS (2020-May-25)
- [MaxSMT] Finding minimum of a simple function using MK85 and simulated annealing (2020-Mar-12)
- [Utility][Python] megagrep (2020-Feb-28)
- [Utility][Python] Kill busy process (2020-Feb-28)
- [win32][Utility] Copyfile (2020-Feb-27)
- The RE4B book is 10 years old today. (2020-Feb-27)
- [Utility][Python] DDFF - Duplicate Directories and Files Finder (2020-Feb-25)
- [Linux] Using lsof (2020-Feb-24)
- Solving Martin Gardner's chess problem using simulated annealing (2020-Feb-24)
- The RE4B book printed on paper (2020-Feb-22)
- Yet another entropy calculating tool (2019-Dec-24)
- Get Wikimapia URL from EXIF (2019-Dec-19)
- [Utility] Programmer's calculator (2019-Dec-12)
- What MSVC's version has been used to compile Windows 10? (2019-Dec-08)
- [IDAPython] Generating nice callgraphs. (2019-Dec-08)
For the old blog, click this.