2011-05-26 41 views
2

我有一個嵌入在可編程設備中的序列號字符串「1080910」,該設備已使用ALL-100編程器下載到二進制文件中。這是我的主文件,因爲它是。我需要將此序列號更改爲需要使用主文件重新閃存的單元序列號 - ALL-100編程器使用具有編輯功能的XACCESS用戶界面,其中顯示地址位置,十六進制數據字段和Ascii字段。在這個文件中的某處是序列號字符串 - 任何人都可以幫助我如何定位和編輯序列號字符串,因爲我無法使用搜索功能找到它並且無法在視覺上拾取數字序列。幫幫我 !!!更改嵌入的序列號

+0

也許你應該更好地使用一個十六進制編輯器(谷歌爲此)編輯二進制文件,並重新發送到您的設備 – CharlesB 2011-05-26 09:44:44

回答

1

也許它被存儲在Unicod E,所以替代字符是00

2

如果數據在源代碼中的符號地址,並且不是本地變量,它的地址將出現在所生成的地圖文件由鏈接器。如果它是一個用文字常量初始化的局部變量,那麼數據將存在於靜態初始化數據中,靜態初始化數據的位置也應該在映射文件中標識。

另一種可能性是,您的應用程序映像被壓縮並且啓動代碼在運行時將其展開到RAM中。如果數據和代碼地址在RAM而不是ROM中,這將在映射文件中顯而易見。如果是這種情況,那麼你正在嘗試的將是非常困難的。你將不得不知道所使用的壓縮算法,以及圖像的哪一部分是被壓縮的部分(其中一部分將是從ROM運行的解壓縮代碼)。然後您必須解壓縮圖像,修改字符串,然後重新壓縮它。此外,如果解壓縮對壓縮或解壓縮的數據執行任何類型的校驗和,則必須重新計算和修改。

如果這是從一開始的要求,那麼在鏈接器腳本中保留空間或使用編譯器特定的擴展來絕對定位特定位置的數據會更好。