在寫**過程中,我們修改**中暫存器的值,但是有時暫存器的資料較多,手動修改容易出現錯誤而且花費的時間長,現在寫一段簡單的python程式來完成自動化。
#這是一段暫存器的配置值:
# 0x00, 0x34
# 0x35, 0x25
# 0x10, 0xd4
# 0xf5, 0xa5
# 0x00, 0x34
# 0x3a, 0xff
# 0x00, 0x00
# 0x34, 0x25
# 這是要修改**的值:
# ,# ,
# ,# ,
# ,# ,
# ,# ,
首先將要修改的**值存在test1.txt中,暫存器的配置值存在test2.txt中
# python實現的過程
# 引入必要的包
import numpy as np
import pandas as pd
#匯入**
data = pd.read_csv(
"g:/test/test1.txt"
, header=
none
)# data
# 0 1 2 3
# 0 nan
# 1 nan
# 2 nan
# 3 nan
# 4 nan
# 5 nan
# 6 nan
# 7 nan
#匯入暫存器配置值
reg = pd.read_csv(
"g:/test/test2.txt"
, header =
none
)# reg
# 0 1
# 0 0x00 0x34
# 1 0x35 0x25
# 2 0x10 0xd4
# 3 0xf5 0xa5
# 4 0x00 0x34
# 5 0x3a 0xff
# 6 0x00 0x00
# 7 0x34 0x25
# 修改**第二列值
data[1]
= reg[
0]
# 因為**裡面第三列除了數值還有「}」
data[2]
= reg[1]
+"}"
# 修改之後的**資料
# data
# 0 1 2 3
# 0 nan
# 1 nan
# 2 nan
# 3 nan
# 4 nan
# 5 nan
# 6 nan
# 7 nan
# 把修改之後的**儲存成txt檔案
data.to_csv(
"g:/test/result.txt"
,header =
none
, index =
none
)
gdb 檢視暫存器的值
info registers info all registers 下面這兩個暫時不知道如何使用 info registers reggroup info registers regname four standard register name pc sp fp ps p x pc x i pc ...
arm上獲取暫存器的值
本來說在arm上獲取暫存器的值是因為需要除錯乙個很古怪的問題,而在自己的機器上測試的386結構的 似乎還不如arm上對register的訪問自由。大致的想了想似乎arm上得到暫存器的值很簡單的樣子。所以之前才說可能在arm上會比較簡單。結果今天上午一試還是當頭一棒,畢竟還是對arm asm不太熟悉的...
暫存器的認識
對於8086的系統 1.暫存器按照功能的不同可分為通用暫存器 ax,bx,cx,dx,sp,bp,si,di。其中的前四個暫存器可分別分成ah,al bh,bl ch,cl dh,dl的八位暫存器 指令指標暫存器 ip 標誌暫存器 flags 段暫存器 cs,ds,es,ss 它們的區別和聯絡體現在...