鍏堝彂鍩烘湰闂锛屽啀鍙戠紪绋嬮棶棰?/p>
..........
鎯虫垚涓哄祵鍏ュ紡绋嬪簭鍛樺簲鐭ラ亾鐨?/p>
0x10
涓熀鏈棶棰?/p>
:
1
锛?/p>
(void *)ptr
鍜?/p>
(*(void**))ptr
鐨勭粨鏋滄槸鍚︾浉鍚岋紵鍏朵腑
ptr
涓哄悓涓€涓寚閽?/p>
.(void *)ptr
鍜?/p>
(*(void**))ptr
鍊兼槸鐩稿悓鐨?/p>
2
锛?/p>
int main()
{
int x=3;
printf("%d",x);
return 1;
}
闂嚱鏁版棦鐒朵笉浼氳鍏跺畠鍑芥暟璋冪敤锛屼负浠€涔堣杩斿洖
1
锛?/p>
mian
涓紝
c
鏍囧噯璁や负
0
琛ㄧず鎴愬姛锛岄潪
0
琛ㄧず閿欒銆傚叿浣撶殑鍊兼槸鏌愪腑鍏蜂綋鍑洪敊淇℃伅
1
锛岃瀵圭粷瀵瑰湴鍧€
0x100000
璧嬪€硷紝鎴戜滑鍙互鐢?/p>
(unsigned int*)0x100000 = 1234;
閭d箞瑕佹槸鎯宠绋嬪簭璺宠浆鍒扮粷瀵瑰湴鍧€鏄?/p>
0x100000
鍘绘墽琛岋紝搴旇鎬庝箞鍋氾紵
*((void (*)( ))0x100000 ) ( );
棣栧厛瑕佸皢
0x100000
寮哄埗杞崲鎴愬嚱鏁版寚閽?/p>
,
鍗?/p>
:
(void (*)())0x100000
鐒跺悗鍐嶈皟鐢ㄥ畠
:
*((void (*)())0x100000)();
鐢?/p>
typedef
鍙互鐪嬪緱鏇寸洿瑙備簺
:
typedef void(*)() voidFuncPtr;
*((voidFuncPtr)0x100000)();
2
锛屽凡鐭ヤ竴涓暟缁?/p>
table
锛岀敤涓€涓畯瀹氫箟锛屾眰鍑烘暟鎹殑鍏冪礌涓暟
#define NTBL
#define NTBL (sizeof(table)/sizeof(table[0]))
闈㈣瘯棰?/p>
:
绾跨▼涓庤繘绋嬬殑鍖哄埆鍜岃仈绯?/p>
?
绾跨▼鏄惁鍏锋湁鐩稿悓鐨勫爢鏍?/p>
? dll
鏄惁鏈夌嫭绔嬬殑鍫嗘爤
?
杩涚▼鏄鐨勶紝
鍙槸涓€浜涜祫婧愮殑闆嗗悎锛?/p>
鐪熸鐨勭▼搴忔墽琛岄兘鏄嚎绋嬫潵瀹屾垚鐨勶紝
绋嬪簭鍚姩鐨勬椂鍊欐搷
浣滅郴缁熷氨甯綘鍒涘缓浜嗕竴涓富绾跨▼銆?/p>
姣忎釜绾跨▼鏈夎嚜宸辩殑鍫嗘爤銆?/p>
DLL
涓湁娌℃湁鐙珛鐨勫爢鏍堬紝杩欎釜闂涓嶅ソ鍥炵瓟锛屾垨鑰呰杩欎釜闂鏈韩鏄惁鏈夐棶棰樸€傚洜涓?/p>
DLL
涓殑浠g爜鏄鏌愪簺绾跨▼鎵€鎵ц锛?/p>
鍙湁绾跨▼鎷ユ湁鍫嗘爤锛?/p>
濡傛灉
DLL
涓殑浠g爜鏄?/p>
EXE
涓殑绾跨▼鎵€璋?/p>
鐢紝
閭d箞杩欎釜鏃跺€欐槸涓嶆槸璇磋繖涓?/p>
DLL
娌℃湁鑷繁鐙珛鐨勫爢鏍堬紵濡傛灉
DLL
涓殑浠g爜鏄敱
DLL
鑷繁
鍒涘缓鐨勭嚎绋嬫墍鎵ц锛岄偅涔堟槸涓嶆槸璇?/p>
DLL
鏈夌嫭绔嬬殑鍫嗘爤锛?/p>
浠ヤ笂璁茬殑鏄爢鏍堬紝
濡傛灉瀵逛簬鍫嗘潵璇达紝姣忎釜
DLL
鏈夎嚜宸辩殑鍫嗭紝
鎵€浠ュ鏋滄槸浠?/p>
DLL
涓姩鎬佸垎閰嶇殑
鍏堝彂鍩烘湰闂锛屽啀鍙戠紪绋嬮棶棰?/p>
..........
鎯虫垚涓哄祵鍏ュ紡绋嬪簭鍛樺簲鐭ラ亾鐨?/p>
0x10
涓熀鏈棶棰?/p>
:
1
锛?/p>
(void *)ptr
鍜?/p>
(*(void**))ptr
鐨勭粨鏋滄槸鍚︾浉鍚岋紵鍏朵腑
ptr
涓哄悓涓€涓寚閽?/p>
.(void *)ptr
鍜?/p>
(*(void**))ptr
鍊兼槸鐩稿悓鐨?/p>
2
锛?/p>
int main()
{
int x=3;
printf("%d",x);
return 1;
}
闂嚱鏁版棦鐒朵笉浼氳鍏跺畠鍑芥暟璋冪敤锛屼负浠€涔堣杩斿洖
1
锛?/p>
mian
涓紝
c
鏍囧噯璁や负
0
琛ㄧず鎴愬姛锛岄潪
0
琛ㄧず閿欒銆傚叿浣撶殑鍊兼槸鏌愪腑鍏蜂綋鍑洪敊淇℃伅
1
锛岃瀵圭粷瀵瑰湴鍧€
0x100000
璧嬪€硷紝鎴戜滑鍙互鐢?/p>
(unsigned int*)0x100000 = 1234;
閭d箞瑕佹槸鎯宠绋嬪簭璺宠浆鍒扮粷瀵瑰湴鍧€鏄?/p>
0x100000
鍘绘墽琛岋紝搴旇鎬庝箞鍋氾紵
*((void (*)( ))0x100000 ) ( );
棣栧厛瑕佸皢
0x100000
寮哄埗杞崲鎴愬嚱鏁版寚閽?/p>
,
鍗?/p>
:
(void (*)())0x100000
鐒跺悗鍐嶈皟鐢ㄥ畠
:
*((void (*)())0x100000)();
鐢?/p>
typedef
鍙互鐪嬪緱鏇寸洿瑙備簺
:
typedef void(*)() voidFuncPtr;
*((voidFuncPtr)0x100000)();
2
锛屽凡鐭ヤ竴涓暟缁?/p>
table
锛岀敤涓€涓畯瀹氫箟锛屾眰鍑烘暟鎹殑鍏冪礌涓暟
#define NTBL
#define NTBL (sizeof(table)/sizeof(table[0]))
闈㈣瘯棰?/p>
:
绾跨▼涓庤繘绋嬬殑鍖哄埆鍜岃仈绯?/p>
?
绾跨▼鏄惁鍏锋湁鐩稿悓鐨勫爢鏍?/p>
? dll
鏄惁鏈夌嫭绔嬬殑鍫嗘爤
?
杩涚▼鏄鐨勶紝
鍙槸涓€浜涜祫婧愮殑闆嗗悎锛?/p>
鐪熸鐨勭▼搴忔墽琛岄兘鏄嚎绋嬫潵瀹屾垚鐨勶紝
绋嬪簭鍚姩鐨勬椂鍊欐搷
浣滅郴缁熷氨甯綘鍒涘缓浜嗕竴涓富绾跨▼銆?/p>
姣忎釜绾跨▼鏈夎嚜宸辩殑鍫嗘爤銆?/p>
DLL
涓湁娌℃湁鐙珛鐨勫爢鏍堬紝杩欎釜闂涓嶅ソ鍥炵瓟锛屾垨鑰呰杩欎釜闂鏈韩鏄惁鏈夐棶棰樸€傚洜涓?/p>
DLL
涓殑浠g爜鏄鏌愪簺绾跨▼鎵€鎵ц锛?/p>
鍙湁绾跨▼鎷ユ湁鍫嗘爤锛?/p>
濡傛灉
DLL
涓殑浠g爜鏄?/p>
EXE
涓殑绾跨▼鎵€璋?/p>
鐢紝
閭d箞杩欎釜鏃跺€欐槸涓嶆槸璇磋繖涓?/p>
DLL
娌℃湁鑷繁鐙珛鐨勫爢鏍堬紵濡傛灉
DLL
涓殑浠g爜鏄敱
DLL
鑷繁
鍒涘缓鐨勭嚎绋嬫墍鎵ц锛岄偅涔堟槸涓嶆槸璇?/p>
DLL
鏈夌嫭绔嬬殑鍫嗘爤锛?/p>
浠ヤ笂璁茬殑鏄爢鏍堬紝
濡傛灉瀵逛簬鍫嗘潵璇达紝姣忎釜
DLL
鏈夎嚜宸辩殑鍫嗭紝
鎵€浠ュ鏋滄槸浠?/p>
DLL
涓姩鎬佸垎閰嶇殑
鍏堝彂鍩烘湰闂锛屽啀鍙戠紪绋嬮棶棰?/p>
..........
鎯虫垚涓哄祵鍏ュ紡绋嬪簭鍛樺簲鐭ラ亾鐨?/p>
0x10
涓熀鏈棶棰?/p>
:
1
锛?/p>
(void *)ptr
鍜?/p>
(*(void**))ptr
鐨勭粨鏋滄槸鍚︾浉鍚岋紵鍏朵腑
ptr
涓哄悓涓€涓寚閽?/p>
.(void *)ptr
鍜?/p>
(*(void**))ptr
鍊兼槸鐩稿悓鐨?/p>
2
锛?/p>
int main()
{
int x=3;
printf("%d",x);
return 1;
}
闂嚱鏁版棦鐒朵笉浼氳鍏跺畠鍑芥暟璋冪敤锛屼负浠€涔堣杩斿洖
1
锛?/p>
mian
涓紝
c
鏍囧噯璁や负
0
琛ㄧず鎴愬姛锛岄潪
0
琛ㄧず閿欒銆傚叿浣撶殑鍊兼槸鏌愪腑鍏蜂綋鍑洪敊淇℃伅
1
锛岃瀵圭粷瀵瑰湴鍧€
0x100000
璧嬪€硷紝鎴戜滑鍙互鐢?/p>
(unsigned int*)0x100000 = 1234;
閭d箞瑕佹槸鎯宠绋嬪簭璺宠浆鍒扮粷瀵瑰湴鍧€鏄?/p>
0x100000
鍘绘墽琛岋紝搴旇鎬庝箞鍋氾紵
*((void (*)( ))0x100000 ) ( );
棣栧厛瑕佸皢
0x100000
寮哄埗杞崲鎴愬嚱鏁版寚閽?/p>
,
鍗?/p>
:
(void (*)())0x100000
鐒跺悗鍐嶈皟鐢ㄥ畠
:
*((void (*)())0x100000)();
鐢?/p>
typedef
鍙互鐪嬪緱鏇寸洿瑙備簺
:
typedef void(*)() voidFuncPtr;
*((voidFuncPtr)0x100000)();
2
锛屽凡鐭ヤ竴涓暟缁?/p>
table
锛岀敤涓€涓畯瀹氫箟锛屾眰鍑烘暟鎹殑鍏冪礌涓暟
#define NTBL
#define NTBL (sizeof(table)/sizeof(table[0]))
闈㈣瘯棰?/p>
:
绾跨▼涓庤繘绋嬬殑鍖哄埆鍜岃仈绯?/p>
?
绾跨▼鏄惁鍏锋湁鐩稿悓鐨勫爢鏍?/p>
? dll
鏄惁鏈夌嫭绔嬬殑鍫嗘爤
?
杩涚▼鏄鐨勶紝
鍙槸涓€浜涜祫婧愮殑闆嗗悎锛?/p>
鐪熸鐨勭▼搴忔墽琛岄兘鏄嚎绋嬫潵瀹屾垚鐨勶紝
绋嬪簭鍚姩鐨勬椂鍊欐搷
浣滅郴缁熷氨甯綘鍒涘缓浜嗕竴涓富绾跨▼銆?/p>
姣忎釜绾跨▼鏈夎嚜宸辩殑鍫嗘爤銆?/p>
DLL
涓湁娌℃湁鐙珛鐨勫爢鏍堬紝杩欎釜闂涓嶅ソ鍥炵瓟锛屾垨鑰呰杩欎釜闂鏈韩鏄惁鏈夐棶棰樸€傚洜涓?/p>
DLL
涓殑浠g爜鏄鏌愪簺绾跨▼鎵€鎵ц锛?/p>
鍙湁绾跨▼鎷ユ湁鍫嗘爤锛?/p>
濡傛灉
DLL
涓殑浠g爜鏄?/p>
EXE
涓殑绾跨▼鎵€璋?/p>
鐢紝
閭d箞杩欎釜鏃跺€欐槸涓嶆槸璇磋繖涓?/p>
DLL
娌℃湁鑷繁鐙珛鐨勫爢鏍堬紵濡傛灉
DLL
涓殑浠g爜鏄敱
DLL
鑷繁
鍒涘缓鐨勭嚎绋嬫墍鎵ц锛岄偅涔堟槸涓嶆槸璇?/p>
DLL
鏈夌嫭绔嬬殑鍫嗘爤锛?/p>
浠ヤ笂璁茬殑鏄爢鏍堬紝
濡傛灉瀵逛簬鍫嗘潵璇达紝姣忎釜
DLL
鏈夎嚜宸辩殑鍫嗭紝
鎵€浠ュ鏋滄槸浠?/p>
DLL
涓姩鎬佸垎閰嶇殑
鍏堝彂鍩烘湰闂锛屽啀鍙戠紪绋嬮棶棰?/p>
..........
鎯虫垚涓哄祵鍏ュ紡绋嬪簭鍛樺簲鐭ラ亾鐨?/p>
0x10
涓熀鏈棶棰?/p>
:
1
锛?/p>
(void *)ptr
鍜?/p>
(*(void**))ptr
鐨勭粨鏋滄槸鍚︾浉鍚岋紵鍏朵腑
ptr
涓哄悓涓€涓寚閽?/p>
.(void *)ptr
鍜?/p>
(*(void**))ptr
鍊兼槸鐩稿悓鐨?/p>
2
锛?/p>
int main()
{
int x=3;
printf("%d",x);
return 1;
}
闂嚱鏁版棦鐒朵笉浼氳鍏跺畠鍑芥暟璋冪敤锛屼负浠€涔堣杩斿洖
1
锛?/p>
mian
涓紝
c
鏍囧噯璁や负
0
琛ㄧず鎴愬姛锛岄潪
0
琛ㄧず閿欒銆傚叿浣撶殑鍊兼槸鏌愪腑鍏蜂綋鍑洪敊淇℃伅
1
锛岃瀵圭粷瀵瑰湴鍧€
0x100000
璧嬪€硷紝鎴戜滑鍙互鐢?/p>
(unsigned int*)0x100000 = 1234;
閭d箞瑕佹槸鎯宠绋嬪簭璺宠浆鍒扮粷瀵瑰湴鍧€鏄?/p>
0x100000
鍘绘墽琛岋紝搴旇鎬庝箞鍋氾紵
*((void (*)( ))0x100000 ) ( );
棣栧厛瑕佸皢
0x100000
寮哄埗杞崲鎴愬嚱鏁版寚閽?/p>
,
鍗?/p>
:
(void (*)())0x100000
鐒跺悗鍐嶈皟鐢ㄥ畠
:
*((void (*)())0x100000)();
鐢?/p>
typedef
鍙互鐪嬪緱鏇寸洿瑙備簺
:
typedef void(*)() voidFuncPtr;
*((voidFuncPtr)0x100000)();
2
锛屽凡鐭ヤ竴涓暟缁?/p>
table
锛岀敤涓€涓畯瀹氫箟锛屾眰鍑烘暟鎹殑鍏冪礌涓暟
#define NTBL
#define NTBL (sizeof(table)/sizeof(table[0]))
闈㈣瘯棰?/p>
:
绾跨▼涓庤繘绋嬬殑鍖哄埆鍜岃仈绯?/p>
?
绾跨▼鏄惁鍏锋湁鐩稿悓鐨勫爢鏍?/p>
? dll
鏄惁鏈夌嫭绔嬬殑鍫嗘爤
?
杩涚▼鏄鐨勶紝
鍙槸涓€浜涜祫婧愮殑闆嗗悎锛?/p>
鐪熸鐨勭▼搴忔墽琛岄兘鏄嚎绋嬫潵瀹屾垚鐨勶紝
绋嬪簭鍚姩鐨勬椂鍊欐搷
浣滅郴缁熷氨甯綘鍒涘缓浜嗕竴涓富绾跨▼銆?/p>
姣忎釜绾跨▼鏈夎嚜宸辩殑鍫嗘爤銆?/p>
DLL
涓湁娌℃湁鐙珛鐨勫爢鏍堬紝杩欎釜闂涓嶅ソ鍥炵瓟锛屾垨鑰呰杩欎釜闂鏈韩鏄惁鏈夐棶棰樸€傚洜涓?/p>
DLL
涓殑浠g爜鏄鏌愪簺绾跨▼鎵€鎵ц锛?/p>
鍙湁绾跨▼鎷ユ湁鍫嗘爤锛?/p>
濡傛灉
DLL
涓殑浠g爜鏄?/p>
EXE
涓殑绾跨▼鎵€璋?/p>
鐢紝
閭d箞杩欎釜鏃跺€欐槸涓嶆槸璇磋繖涓?/p>
DLL
娌℃湁鑷繁鐙珛鐨勫爢鏍堬紵濡傛灉
DLL
涓殑浠g爜鏄敱
DLL
鑷繁
鍒涘缓鐨勭嚎绋嬫墍鎵ц锛岄偅涔堟槸涓嶆槸璇?/p>
DLL
鏈夌嫭绔嬬殑鍫嗘爤锛?/p>
浠ヤ笂璁茬殑鏄爢鏍堬紝
濡傛灉瀵逛簬鍫嗘潵璇达紝姣忎釜
DLL
鏈夎嚜宸辩殑鍫嗭紝
鎵€浠ュ鏋滄槸浠?/p>
DLL
涓姩鎬佸垎閰嶇殑