Это прикольно, но в целях "поиграться". Если весь код будет из int3 - это подозрительно. К тому же с таким подходом, как я понял, нужен внешний зашифрованный буфер кода функции, при наступлении эксепшена нужная инструкция по смещению такому же как в функции из int3 копируется во временный буфер или на место эксепшена, исполняется и натыкается на следующий int3, ее расшифрованный только что исполненный вариант снова забивается int3, и так в цикле.Да, там вся секция кода для простоты заливалась int3 и по одной инструкции расшифровывалось, это можно было бы делать и через TF, но с секцией кода целиком состоящей из int3 (кроме одной инструкции) мне показалось забавнее.
С точки зрения беспалевности и эффективности в скорости (ну хоть немного ее вытянуть из полной задницы), выгоднее делать полностью на TF и PG, тогда код всегда остается на своем месте, и расшифровывается сразу там же по одной инструкции, и исполняется там же. Никаких дополнительных буферов и копирований. У индюка тоже было что-то с буферами временными, но это кривое решение, которое к тому же требует постоянного отслеживания релоков и полноценный PE файл запустить под такой вертушкой будет еще более проблематично. Можно, но очень много лишнего придется делать.
. Во всех остальных случаях лучше быть впереди