<p>i implemented a custom concolic execution engine[1] for this crackme, but it didn't work out: at the beginning of it, there is code that checks for an alphabet, smth like:</p><p>if x == '(': break<br />if x in 'a'..'z': break<br />goto fail</p><p>i split the solver state on each branch, which doesn't work out well for me: it means i will do a graph search of like 6**32 branches, which will take very long</p><p>state merging is hard</p><p>[1]: <a href="https://gist.github.com/whitequark/e8c7ffab0208d1b033aae715488881d6" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="ellipsis">gist.github.com/whitequark/e8c</span><span class="invisible">7ffab0208d1b033aae715488881d6</span></a></p>