C 友元函式獲取成員變數 作為除錯後門程式

2021-06-13 18:32:14 字數 1079 閱讀 1301

c++友元函式獲取成員變數(作為除錯後門程式)

一.原始碼例子:

[user:backdoor] ls

main.cpp

[user:backdoor] cat main.cpp

/// @file main.cpp

/// @brief

/// @author eastonwoo

/// 0.01

/// @date 2012-12-24

#include

#define debug_backdoor //後門巨集

typedef struct s_hello

s_hello;

class ctest

#ifdef debug_backdoor

friend bool getvalue(ctest &disk, int index, void** output, int &size);  //友元函式

typedef enum e_value

e_value;

#endif

private:

int m_a;

s_hello m_s;

};#ifdef debug_backdoor

bool getvalue(ctest &disk, int index, void** output, int &size)  //獲取私有成員變數

return true;

}#endif

int main()

[user:backdoor]

二.編譯執行:

[user:backdoor] g++ -g main.cpp

[user:backdoor] ls

a.out*  main.cpp

[user:backdoor] ./a.out

*pa = 1, size = 4

*pa = 10, size = 12                       //成功獲取.可作為後門除錯

[user:backdoor]

C 友元函式 友元類 友元成員函式

眾所周知,c 控制對類物件私有部分的訪問。通常,公有類方法提供唯一的訪問途徑,但是有時候這種限制太嚴格,以至於不適合特定的程式設計問題。在這種情況下,c 提供了另外一種形式的訪問許可權 友元,友元有3種 友元函式 友元類 友元成員函式。通過讓函式成為類的友元 即 友元函式 可以賦予該函式與類的成員函...

友元 友元函式 友元類和友元成員函式 C

有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...

友元 友元函式 友元類和友元成員函式 C

有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...