[英]parsing assembly code in perl
0000000000033a1b subq $0x28,%rsp
我無法從上面的行中提取0x28。 我能夠從匯編代碼的大列表中提取subq,但我只想要0x28,因為這給了我堆棧大小。 我正在考慮使用substr()函數購買它有變化,另一個可能看起來像這樣:
0000000000033a1c subq $0x000000b8,%rsp
在這種情況下,我只想要0x000000b8。
我正在使用perl。
謝謝。
沒有代碼,我的猜測是你沒有逃脫美元符號。 因此,您要求它匹配行的末尾, 然后是 '0x28'
。
在任何正則表達式中, /\\$0x(\\p{XDigit}+)/
應該從該字符串中捕獲'28'
。
如果您輸入以下格式,請始終:
instruction_address operand $stack_size,register
你可以做:
$a = '0000000000033a1b subq $0x28,%rsp';
$a =~s/^.*?\$(.*?),.*$/\1/;
print $a; # prints 0x28
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.