## My blog

Main topics are reverse engineering, programming, math...

### The posts:

 08-Mar-2018 Graph coloring and scheduling, part II 07-Mar-2018 Graph coloring and scheduling, part I 03-Mar-2018 Enumerating all possible inputs for specific a regexp using Z3 SMT-solver 26-Feb-2018 Dependency graphs and topological sorting using Z3 SMT-solver 23-Feb-2018 TAOCP 7.1.3 Exercise 203, MMIX MOR instruction and program synthesis by sketching 23-Feb-2018 TAOCP 7.1.3 Exercise 198, UTF-8 encoding and program synthesis by sketching 21-Feb-2018 School teams scheduling, Kirkman’s Schoolgirl Problem, etc 17-Feb-2018 Numberlink (AKA Flow Free) puzzle as a MaxSAT problem + toy PCB router 12-Feb-2018 Solving Numberlink (AKA Flow Free) puzzle using Z3 07-Feb-2018 Simple logic synthesis using Z3: exercise from TAOCP 03-Feb-2018 Travelling salesman problem using Z3 30-Jan-2018 Simple logic synthesis using Z3; Apollo Guidance Computer 17-Jan-2018 Hilbert’s 10th problem, Fermat’s last theorem and SMT solvers 16-Jan-2018 Yet another explanation of modulo inverse using SMT-solvers 14-Jan-2018 Simple adder in SAT/SMT 13-Jan-2018 Yet another logical puzzle and SAT/SMT solvers 13-Jan-2018 Multiple choice logic puzzle, and solving it using SAT/SMT solvers 01-Jan-2018 ToySMT - simple SMT solver under ~1500 SLOC of pure C. 07-Dec-2017 Ménage problem 05-Dec-2017 Can rand() generate 10 consecutive zeroes? 05-Dec-2017 Yet another explanation of modulo inverse 04-Dec-2017 Coin flipping problem: Z3 and MaxSAT (Open-WBO) 01-Dec-2017 Assignment problem and Z3 29-Nov-2017 Stable marriage problem and Z3 23-Nov-2017 Solving Killer Sudoku using Z3 23-Nov-2017 Greater Than Sudoku 23-Nov-2017 Kirkman’s Schoolgirl Problem 22-Nov-2017 Magic/Latin square of Knut Vik design: getting it using Z3 15-Nov-2017 Crossword generator based on Z3 14-Nov-2017 Finding (good) CRC polynomial using Z3 11-Nov-2017 Getting CRC polynomial and other CRC generator parameters using Z3 06-Nov-2017 Factorize GF(2)/CRC polynomials using Z3 05-Nov-2017 Yet another explanation of CRC (Cyclic redundancy check) 27-Oct-2017 Alphametics and Z3 SMT solver 22-Oct-2017 Explanation of the Least Common Multiple using Z3 SMT solver, etc 11-Oct-2017 Explanation of the Greatest Common Divisor using Z3 SMT solver, etc 07-Oct-2017 SAP cluster table unpacker 04-Oct-2017 Proving sorting network correctness using Z3 SMT solver 30-Sep-2017 Proving bizarre XOR alternative using SAT solver 29-Sep-2017 Tiling puzzle and Z3 SMT solver 27-Sep-2017 Balanced Gray code and Z3 SMT solver 24-Sep-2017 Integer factorization using SAT solver 23-Sep-2017 Integer factorization using Z3 SMT solver 20-Sep-2017 Rubik’s cube (3*3*3) and Z3 SMT-solver, part II 11-Sep-2017 Solving pocket Rubiks cube (2*2*2) using Z3 and SAT solver 13-Jul-2017 Solving XKCD 287 using Z3 SMT-solver 11-Jul-2017 Generating de Bruijn sequences using Z3 SMT-solver 02-Jul-2017 De Morgan’s laws and decompilation 01-Jul-2017 Zebra puzzle as a SAT problem 28-Jun-2017 Simplifying long and messy expressions using Mathematica and Z3 26-Jun-2017 Simplest SAT solver in ~120 lines 24-Jun-2017 Cracking Minesweeper with PIN 19-Jun-2017 Cracking simple XOR cipher with Z3 07-Jun-2017 Eight queens problem in 93 bytes 03-Jun-2017 Worst sorting algorithm I ever saw 02-Jun-2017 Making smallest possible test suite using Z3 30-May-2017 Using PIN DBI for XOR interception 13-May-2017 Cyclomatic complexity 10-May-2017 News 29-Apr-2017 Recalculating micro-spreadsheet using Z3Py 12-Mar-2017 Conway’s Game of Life and SAT solver 07-Mar-2017 Cracking Minesweeper with SAT solver 05-Mar-2017 Cracking Minesweeper with Z3 SMT solver 02-Mar-2017 Cracking simple LCG PRNG 28-Feb-2017 Symbolic execution and (amateur) cryptography 25-Feb-2017 Text strings right in the middle of compressed data 09-Feb-2017 Symbolic execution 15-Jan-2017 Simple program synthesis using Z3 SMT-solver 05-Dec-2016 "Reverse Engineering for Beginners" book in Farsi (Persian language) 05-Dec-2016 Toy decompiler for x86-64 written in Python 10-Jul-2016 Another loop optimization 29-Jun-2016 C/C++ pointers: array as function argument 27-Jun-2016 Overclocking Cointerra Bitcoin miner 13-Jun-2016 C/C++ pointers: null pointers 02-Jun-2016 C/C++ pointers: pointers abuse in Windows kernel 22-May-2016 C/C++ pointers: yet another abuse 19-May-2016 Weird loop optimization 08-May-2016 C/C++ pointers: yet another short example 06-May-2016 Breaking simple executable cryptor 06-May-2016 Function arguments statistics 03-May-2016 Simple encryption using XOR mask, part II 29-Apr-2016 Simple encryption using XOR mask 22-Apr-2016 Signed division using shifts 19-Apr-2016 Bug in LZHuf.c by Haruyasu Yoshizaki 12-Nov-2015 My new website about reverse engineering challenges/exercises/problems/tasks: challenges.re 27-Sep-2015 Some of git internals 27-Sep-2015 Content-addressable storage 08-Sep-2015 Typeless programming languages (BCPL, B), C evolution and decompiling 04-Sep-2015 (Beginners level) packing 12-bit values into array using bit operations (x64, ARM/ARM64, MIPS) 26-Aug-2015 Yet another compiler anomaly 26-Aug-2015 Encrypted database case #1 22-Aug-2015 De Bruijn sequences (solution for the exercise posted at 18-Aug-2015); leading/trailing zero bits counting. 20-Aug-2015 Some parts of my Reverse Engineering book translated to Chinese. 13-Aug-2015 Introduction to logarithms; yet another x86 reverse engineering exercise 23-Jul-2015 Fuzzy string matching + simplest possible spellchecking + hunting for typos and misspellings in Wikipedia 22-Jul-2015 Clique in graph theory 09-Jul-2015 How RSA works 13-Jun-2015 Modular arithmetic + division by multiplication + reversible LCG (PRNG) + cracking LCG with Z3 16-May-2015 Tweaking LLVM Obfuscator + quick look into some of LLVM internals 13-May-2015 (Beginners level) Analyzing unknown binary files using information entropy 25-Apr-2015 (Beginners level) reverse engineering of simple fortune program indexing file 20-Apr-2015 Using Z3 theorem prover to prove equivalence of some bizarre alternative to XOR operation. 21-Jan-2015 Korean publication of "Reverse Engineering for Beginners" book is available for pre-order! 29-Aug-2014 Publishers? 08-Aug-2014 "Reverse Engineering for Beginners" free book news 09-Apr-2014 Couple of win32 PE patching utilities 29-Mar-2014 Cracking simple hash-function using Z3 SMT-solver 05-Mar-2014 My "Reverse Engineering for Beginners" book 18-Feb-2014 PE add imports 18-Dec-2013 Convert to sparse file utility (win32) 16-Oct-2013 Add import to PE executable file 15-Oct-2013 New tracer features for software testing 19-Aug-2013 Bug or typo or?.. 03-Jul-2013 "Quick introduction to reverse engineering for beginners" book update 14-Mar-2013 "Quick introduction to reverse engineering for beginners" 14-Aug-2012 Finding unknown algorithm using only input/output pairs and Z3 SMT solver 19-Jul-2012 Three PoCs from CPUjul2012 17-Jul-2012 CVE-2012-0072 PoC (fixed in CPUjan2012) 17-Jul-2012 CVE-2010-0911 PoC (fixed in CPUjul2010) 23-Sep-2011 Extreme hardening by code modification. 27-Jul-2011 Dataflow tracker 27-Jul-2011 Strings in Oracle RDBMS network layer 06-Apr-2011 ops_SIMD 0.3 19-Jan-2011 Oracle passwords (DES) solver updating to support AVX 14-Jan-2011 Generic tracer 0.5 beta 07-Dec-2010 Making C compiler generate obfuscated code 24-Nov-2010 Oracle .msb files unpacker 31-Oct-2010 Adding old dongle support to DosBox 29-Oct-2010 Using debugging features of DosBox 10-Oct-2010 Oracle passwords (DES) solver 0.2 (SSE2) 13-Jul-2010 Tracing connection between TDW_NOCOMPRESS SAPGUI envrionment variable to bothering window and actual data compression routine 11-Jul-2010 "QR9": Rubik's cube inspired amateur crypto-algorithm 07-Jul-2010 About Oracle PL/SQL undocumented "interface" pragma. 07-Jun-2010 SAP license + password checking functions... 07-Jun-2010 Generic tracer 0.4 02-Jun-2010 About SAP network packets decompressing and also SAP network password sniffing 24-May-2010 PEEKs and POKEs in Windows x64? 15-Apr-2010 My two oracle passwords crackers 12-Mar-2010 SAP 06-Feb-2010 Oracle RDBMS internal self-testing features 30-Jan-2010 Random Oracle hosts statistics 26-Jan-2010 Rendering data structures passed to functions as arguments 22-Jan-2010 Metasploit plugin based on CVE-2009-1979 22-Jan-2010 CVE-2010-0071 20-Jan-2010 My Oracle TNS Listener rootkit experiment 19-Jan-2010 My Oracle rootkit experiment 15-Jan-2010 More information about CVE-2009-1979 (CPUoct2009) 24-Dec-2009 Events checked in some major Oracle RDBMS versions 24-Dec-2009 Radiohead lyrics in Oracle RDBMS code 22-Dec-2009 Rare x86 instruction 06-Dec-2009 FPGA-based Oracle RDBMS passwords solver 05-Dec-2009 Generic tracer 0.3 30-Oct-2009 CVE-2009-1979 PoC (CPUoct2009) 05-Oct-2009 Oracle RDBMS passwords solver 24-Jul-2009 CVE-2009-1970 PoC (CPUjul2009) 24-Jul-2009 CVE-2009-1963 PoC (CPUjul2009) 24-Jul-2009 CVE-2009-1019 PoC (CPUjul2009) 24-Jul-2009 CVE-2009-1020 PoC (CPUjul2009) 21-May-2009 Generic tracer 21-Apr-2009 CPUapr2009 02-Apr-2009 IBM DB2 07-Jan-2009 CHANGE USER OPI call 04-Nov-2008 Oracle SPY Events 02-Oct-2008 SYS_OP_* 29-Sep-2008 Oracle RDBMS 11.1.0.7.0 some internals info 25-Sep-2008 Basics of C within the Oracle kernel. 04-Sep-2008 Oracle internals 30-Jul-2008 Oracle SPY 23-Jul-2008 Intel(R) C++? 13-Jul-2008 Network trace in Oracle RDBMS 13-Jul-2008 malloc() comments 13-Jul-2008 Solving Oracle passwords hashes using FPGA. 13-Jul-2008 Evolution 10-Jul-2008 _disable_txn_alert undocumented parameter in Oracle 11g 26-Jun-2008 Oracle X$KSMLRU fixed table 17-Feb-2008 Oracle V$TIMER

Feel free to translate them to other languages, except Russian, please! Just ask me, I will prepare Russian version by myself.

Some of my other writings are: "Reverse Engineering for Beginners" free book, https://yurichev.com/writings/.

All reverse engineering exercises are moved to separate website: https://challenges.re/.

There are also some random notes at GitHub.

 only search this site