/*
//字符串長度<= 0xF膏燕,字符串內(nèi)容直接存放在str1變量的內(nèi)存中
var str1 = "0123456789"
//字符串長度> 0xF, 字符串內(nèi)容存放在__ .TEXT.cstring中 (常量區(qū))
//字符串的地址値信息存放在str2変量的后8個字や中
var str2 = "0123456789ABCDEF"
// 由于字符串長度<= 0xF挣菲,所以字符串內(nèi)容依然存放在str1變量的內(nèi)存中
str1. append ( " ABCDE" )
//開辟堆空間.
str1. append("F")
//開辟堆空間.
str2. append("G" )
0x10000a3ce jmpq *0x2c4c (%rip)
jmpq作用: rip 的地址值加上 0x2c4c 得到的新地址航瞭,然后跳轉(zhuǎn)到新地址的里面的地址值
rip 的地址值是當(dāng)前指令的下一條執(zhí)行的地址值敲才,如果只有一條指令务荆,則rip的地址為當(dāng)前指令的地址 加上 當(dāng)前匯編指令占用字節(jié)數(shù)虑乖,如下圖中
image
當(dāng)前方法只有一條指令暴区,所以 rip 的地址為 0x10000a3ce + 6(當(dāng)前匯編指令占用字節(jié)數(shù))
新地址為 rip + 0x2c4c
jmpq 跳轉(zhuǎn)的內(nèi)容是新地址里面存儲的地址內(nèi)容