天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

C#不為人知的秘密-緩沖區(qū)溢出

  開場白

  各位朋友們,當(dāng)你們看到網(wǎng)上傳播關(guān)于微軟windows、IE對黑客利用“緩沖區(qū)溢出”、0day漏洞攻擊的新聞,是否有過自己也想試試身手,可惜無從下手的感慨?本文將完全使用C#語言,探索那些不為人知的秘密。

  1.本文講述在C#中利用堆棧緩沖區(qū)溢出動態(tài)修改內(nèi)存,達到改變應(yīng)用程序執(zhí)行流程的目的。

  2.如果你是高手,請指出本文的不足。

  3.為了讓本文通俗易懂,代碼將極盡精簡。

  現(xiàn)在開始

  我們知道,當(dāng)數(shù)組下標(biāo)越界時,.NET會自動拋出StackOverflowException,這樣便讓我們可以安全的讀寫內(nèi)存,那么我們有沒有逾越這個自動檢測的屏障,達到我們非常操作的目的呢?答案是有的,而且我們可以修改一些關(guān)鍵變量如if、switch的判斷值,for循環(huán)變量i值,甚至方法返回值,當(dāng)然理論上還可以注入代碼、轉(zhuǎn)移代碼執(zhí)行區(qū)塊,前提是必須在unsafe代碼里。

  方法在被調(diào)用時,系統(tǒng)會進行以下幾項操作:將該方法入棧、參數(shù)入棧、返回地址入棧、控制代碼區(qū)入棧(EIP入棧)。我們想要訪問方法的棧內(nèi)地址,常規(guī)的托管代碼是不行的,只能使用unsafe代碼,但也并不是說你非要精通C/C++語言和指針操作,本文的例子都非常簡單,完全可以將指針就認為是簡版C#數(shù)組。

  改變臨時變量的值

  先給出一段代碼,然后再詳細解釋原理。

 代碼

static  unsafe void Main(string[] args)
        {
            //在棧上申請一個只能保存一個int32的內(nèi)存段
            int* p = stackalloc int[1];

            for (var i = 0; i < 30; i++)
            {
                System.Threading.Thread.Sleep(200);

                Console.WriteLine("{0}/n", i);
                p[i] = 0;
            }
           
            Console.ReadLine();
        }

NET技術(shù)C#不為人知的秘密-緩沖區(qū)溢出,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 暖暖的高清视频在线观看免费中文 | 国产综合无码一区二区色蜜蜜 | 最近免费中文字幕MV在线视频3 | 国产午夜伦鲁鲁 | 99热在线视频这里只精品 | 四虎影视国产精品亚洲精品 | 野草在线视频完整视频 | 国内精品久久久久久久999下 | 亚洲国产中文字幕新在线 | 麻豆精品无码久久久久久久久 | 快插我我好湿啊公交车上做 | 青青草狠狠干 | 国产精品视频免费观看 | 色欲AV精品人妻一区二区三区 | 97久久伊人精品影院 | 国产精品三级在线观看 | 扒开 浓密 毛 | 色哦色哦哦色天天综合 | 果冻传媒在线观看完整版免费 | 亚洲第一成年人网站 | 亚洲综合小说久久另类区 | 日韩欧美 亚洲视频 | 三级黄色网 | GOGOGO高清在线播放韩国 | 国产精品一区二区四区 | 精品久久电影网 | 亚洲成年男人的天堂网 | 最近中文字幕在线中文视频 | 亚洲精品6久久久久中文字幕 | 校园全肉高h湿一女多男 | 中文字幕一区中文亚洲 | 在线观看国产精选免费 | 人人碰在线视频 | 5g在视影讯天天5g免费观看 | 精品久久久久中文字幕日本 | 91偷偷久久做嫩草电影院 | 国产毛A片啊久久久久久A | 精品国产麻豆免费人成网站 | 欧洲内射VIDEOXXX3D | 一本色道久久综合亚洲精品 | 老奶奶50p|