我正在做一個家庭作業,我們要利用一個易受緩衝區溢出攻擊的程序。我們通過創建一個大型的char
陣列來完成這個工作,首先完全沒有操作說明。如何修復多字符常量警告
我相信我應該做的是將惡意代碼複製到緩衝區中的某個位置(這部分我可以很好地執行),然後修改可利用函數的返回地址,以便它指向惡意代碼的位置是。
我知道我想設置的地址(比方說½¾¿º
),但我發現了一些警告,不知道他們所造成。
這是代碼(本質),導致該警告:
int start_of_return_address = 10;
chars[start_of_return_address + 0] = '½';
chars[start_of_return_address + 1] = '¾';
chars[start_of_return_address + 2] = '¿';
chars[start_of_return_address + 3] = 'º';
的警告,我得到每項任務有:
warning: overflow in implicit constant conversion
warning: multi-character character constant
我通過轉換bdbebfba
(地址得到了地址惡意代碼)轉換成字符(產生½¾¿º
)。
任何想法,什麼可能導致的警告,或另一種方法可以讓我的地址複製到一個字符數組?
請記住,這是家庭作業。
你是如何將'bdbebfba'轉換成'characters'的? – ArjunShankar 2012-04-11 10:55:04