• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            穩定盈利的期貨交易方法-量化趨勢交易

            alantop -專業量化投資者

            愛好:量化投資,逆向工程,滲透
            隨筆 - 595, 文章 - 0, 評論 - 921, 引用 - 0
            數據加載中……

            使用ida pro做反編譯時,要注意類型轉換

            使用ida pro做反編譯時,要注意類型轉換

            反編譯器常常在反編譯的時候做一些假設,想調用call常常返回,內存模式是flat,函數框架被正確設置等。當這些假設是正確的,輸出代碼是正確的。當假設是錯誤的話,那么得到的代碼就和真實的代碼不一定一致。來看個例子,

            使用反編譯器得到如下偽碼。

            顯然,變量v3(相當于edx)根本沒有被初始化,為什么?

            發生這樣的時候,是因為被調用函數常常破壞寄存器的值。在x86約定中,只有esiediebxebp可以跨越call保存。換句話說,其他的寄存器可以通過一個函數調用改變它們的值。因此,反編譯器假定函數遵守調用約定,它在函數調用前和函數調用后,把edx識別成兩個變量。第一個變量被優化成a1,第二個變量v3成了未初始化的。

            實際上 edx有以下三種可能。

            1. 未修改
            2. 用來返回一個值
            3. 被毀壞

            通過被調用的函數,反編譯器選擇了第三種情況。來我們來看看如果是對的,會出現什么

            正如我們看到,edx寄存器根本沒有被引用。于是我們發現是第一種情況。

            As we see, the edx register is not referenced at all, so we have the case #1. If the decompiler could find it out itself, without our help, our life would be much easier (maybe it will do so in the future!) Meanwhile, we have to add the required information ourselves. We do it using the Edit, Functions, Set function type command in IDA. The callee does not spoil any registers:

            反編譯器產生不同的偽碼

            因此,我們知道edx并沒有通過call被修改。它不過是在調用前后建立了兩個實例。

            通過調用函數利用edx返回值。我們如下操作設置類型

            上面表達式的意識是,函數帶有一個參數,參數被調用者壓棧,并把結果返回給edx

            在第三種情況下,反編譯器為edx建立兩個不同的變量,第一個被優化掉,第二個被用來放返回值。

            正如我們看到的,類型信息在反編譯器中扮演了一個很重要的角色。為了得到一個正確的代碼,我們要特別注意類型。

            posted on 2008-07-02 19:35 AlanTop 閱讀(3022) 評論(1)  編輯 收藏 引用 所屬分類: 匯編語言教程

            評論

            # re: 使用ida pro做反編譯時,要注意類型轉換  回復  更多評論   

            那個C代碼是怎么來的?
            2008-07-24 10:06 | akirya
            狠狠色丁香婷婷综合久久来来去| 99热都是精品久久久久久| 亚洲日本久久久午夜精品| 四虎亚洲国产成人久久精品| 久久午夜伦鲁片免费无码| 国内精品久久久久久不卡影院| 久久久久久国产a免费观看不卡| 日日躁夜夜躁狠狠久久AV| 777久久精品一区二区三区无码| 人人狠狠综合88综合久久| 久久久久亚洲AV无码麻豆| 思思久久99热免费精品6| 久久99久久99小草精品免视看| 99久久做夜夜爱天天做精品| 青青草国产成人久久91网| 亚洲午夜久久久影院伊人| 久久夜色精品国产www| AV狠狠色丁香婷婷综合久久 | 亚洲色大成网站www久久九| 日本一区精品久久久久影院| 久久精品国产99国产精品亚洲| 久久黄视频| 日韩欧美亚洲综合久久影院d3| 欧美一区二区三区久久综合 | 99久久精品免费看国产一区二区三区| 国产一级做a爰片久久毛片| 久久久久久久久无码精品亚洲日韩| 久久高清一级毛片| 久久99国产精品成人欧美| 777久久精品一区二区三区无码| 国产精品美女久久久| 日韩人妻无码精品久久免费一| 亚洲乱码中文字幕久久孕妇黑人 | 伊人久久大香线蕉亚洲| 久久精品综合网| 久久婷婷国产剧情内射白浆| 亚洲综合久久夜AV | 偷窥少妇久久久久久久久| 精品多毛少妇人妻AV免费久久| 婷婷久久久亚洲欧洲日产国码AV| 亚洲愉拍99热成人精品热久久|