и реально ли из скомпиленой длл сделать обратно сурс
Первым делом пойми разницу, сорсы C++ содержатся в текстовом виде (коде), во время компиляции происходит множество этапов, но конечным результатом будет исполняемый файл, который содержит по большей части ассемблер.
Компиляция это процесс с потерями, исполняемый файл создается для машины, а не для человека:
- удаляются все комментарии (для машины они ничего не значат)
- исчезают все имена переменных, функций, классов (кроме rtti и отладочной информации), вместо них используются адреса
- код превращается в X86 ассемблер, его исполняет процессор, все конструкции языка реализованы на нем
Таким образом, процесс идет хорошо в одну сторону, но тяжело в обратную.
Восстановить сорс можно, но это не сделать автоматикой, для этого только ручной реверс, в этом помогают инструменты типа IDA Pro + Hex Rays, которые декомпилируют код X86 в псевдо-код, естественно в нем не будет ни названий, ни переменных, возможно будет неверная структура, и не будет хватать еще много чего что есть в сорсах, все это допиливается только ручками.
Так же если поверх ассемблера еще накрыто протектором или виртуальной машиной, то восстановление будет еще во много раз сложнее.