網站: JavaEye 作者: justjavac 鏈接:http://justjavac.javaeye.com/blog/170062 發表時間: 2008年03月11日
聲明:本文系JavaEye網站發布的原創博客文章,未經作者書面許可,嚴禁任何網站轉載本文,否則必將追究法律責任!
題目:
設有如下C++類
class A { int value; public: A(int n = 0) : value(n) {} int GetValue() { return value; } };
請使用某種方式來在類的外部改變私有成員A::value的值。
程序員的可能做法:
class A { int value; public: A(int n = 0) : value(n) {} int GetValue() { return value; } void SetValue(int n) { value = n; } }; void f() { A a; a.SetValue(5); }
黑客的可能做法:
void f() { A a; *((int *)&a) = 5; }
結論:
程序員習慣于遵循既有的限制來增加既有的東西。
黑客習慣于利用既有的東西來打破既有的限制。
本文的討論也很精彩,瀏覽討論>>
JavaEye推薦
中國領先的電子商務網站-淘寶網招賢納士,誠聘Java工程師
文章來源:http://justjavac.javaeye.com/blog/170062