I don't expect much from anti-malware companies, but this is one of those moments that made me absolutely dumbfounded that someone actually thought embedding an entire un-sandboxed JS engine with SYSTEM privileges was in any way a good idea. I actually had to get out of bed, open IDA, and start a Windows VM just to check that this wasn't some sort of elaborate hoax!
This isn't some MIDI parser logic, it's an entire JS interpreter that can parse DOM elements! How in Earth did this even get pushed out to a release? Did we learn nothing since the last time [1]?
Потому что нет таблички, где запоминаются все викрефы чтоб их обнулить при деаллокации. Так что вместо этого, викреф смотрит в аллокацию и находит там стронг каунт. Если он ноль, то значение читать нельзя и викреф самовыпиливается.