網(wǎng)站: JavaEye 作者: justjavac 鏈接:http://justjavac.javaeye.com/blog/170062 發(fā)表時(shí)間: 2008年03月11日
聲明:本文系JavaEye網(wǎng)站發(fā)布的原創(chuàng)博客文章,未經(jīng)作者書面許可,嚴(yán)禁任何網(wǎng)站轉(zhuǎn)載本文,否則必將追究法律責(zé)任!
題目:
設(shè)有如下C++類
class A { int value; public: A(int n = 0) : value(n) {} int GetValue() { return value; } };
請(qǐng)使用某種方式來(lái)在類的外部改變私有成員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; }
結(jié)論:
程序員習(xí)慣于遵循既有的限制來(lái)增加既有的東西。
黑客習(xí)慣于利用既有的東西來(lái)打破既有的限制。
本文的討論也很精彩,瀏覽討論>>
JavaEye推薦
中國(guó)領(lǐng)先的電子商務(wù)網(wǎng)站-淘寶網(wǎng)招賢納士,誠(chéng)聘Java工程師
文章來(lái)源:http://justjavac.javaeye.com/blog/170062