Need "imelikud" nimed on koostaja toodetud ja neid nimetatakse nimede segamiseks või nimede kaunistamiseks. Neid nimesid kuvab radare2, kuid neid ei toodeta ega genereerita.
Tsiteerides MSDN-ist:
Funktsioonid, andmed ja objektid C ja C ++ programmides on sisemiselt esindatud nende kaunistatud nimedega. Kaunistatud nimi on kodeeritud string, mille kompilaator on loonud objekti, andmete või funktsiooni määratluse koostamisel. See salvestab koos nimega helistamiskonventsioonid, tüübid, funktsiooniparameetrid ja muu teabe. See nimekaunistus, mida nimetatakse ka nimede segamiseks, aitab linkeril leida käivitatava faili linkimisel õiged funktsioonid ja objektid.
Vikipeedia artiklis Nimi segamine on mõned suurepärased näited nimega GCC toodetud C ++ segamine. Teema paremaks mõistmiseks soovitan teil see põhjalikult läbi lugeda. See selgitab, kuidas segased nimed toodetakse, ja kirjeldab selle ülesehitust.
radare2, täpselt nagu paljud erinevad lahtivõtjad, teab erinevaid nimesid de lahti harutada. Nime haldamist haldab mitu konfiguratsioonimuutujat:
asm.demangle: kuvatakse demasleeritud sümbolid jaotises disasmbin.demangle: Imporditakse demobleeritud sümbolid rakendusest RBinbin.demanglecmd: käivitage xcrun swift-demangle ja sarnased, kui need on saadaval ( Aeglane) bin.lang: bin.demangle
keel >. Öelge radare2-le kindlasti, et laaditaks lahti moondatud sümbolid. Seda saate teha, määrates e bin.demangle
väärtuseks true. Võib-olla peate binaarse uuesti laadima - selleks kasutage oo
.
Kui soovite lihtsalt konkreetset nime lahti muukida, võite kasutada iD <lang> <name>
, mis muudab konkreetse keele sümboli nime lahti. Kasutage seda lihtsalt järgmiselt: iD cxx <mangled name>
C ++ nime segamise jaoks.