本文共 475 字,大约阅读时间需要 1 分钟。
题目: 设有如下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;}结论: 程序员习惯于遵循既有的限制来增加既有的东西。 黑客习惯于利用既有的东西来打破既有的限制。
转载地址:http://dbasi.baihongyu.com/