青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

huyutian

他強由他強,清風拂山崗;他橫由他橫,明月照大江。他自狠來他自惡,我自一口真氣足

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  20 隨筆 :: 47 文章 :: 22 評論 :: 0 Trackbacks

1.IDA反編譯生成c代碼時,有時會出現sp-analysis failed錯誤。這一般是由于IDA分析某個外部函數call時出現了堆棧指針調整錯誤。可以先設置菜單option->General->Disassembly選中stack pointer.然后逐行看看哪些調用前后堆棧出現了偏差。
2.IDA可以通過定義struct/enum來增強生成C代碼的可讀性。但有時候在分析一個程序時定義的結構在另一個文件中也可能有用。這時怎樣處理呢。答案是先導出,再導入。
結構體的導出可參見http://bbs.pediy.com/showthread.php?t=99931
導入比較簡單,通過“菜單Load file/Parse C header file”直接導入頭文件。導入成功后,在Structures里就可以insert,然后Add standard structure中去查找了。導入之后在local types可見,而后全選右鍵同步即可。
結構體導出的代碼保存在這里,便于查閱。

#include "idc.idc"
static Save2HStart(ofile)
{
    writestr(ofile,
"/***************************************************************************************\n");
    writestr(ofile,
"本程序用來導出結構體.并且暫時支持BYTE,WORD,DWORD和結構體。其他的類型被轉換成BYTE數組.\n");    
    writestr(ofile,
"如需支持其他的數據類型請自己在函數Save2HAddItem內加入.\n");
    writestr(ofile,
"                                                        Author   GUANRI\n");
    writestr(ofile,
"                                                        2009年11月8日\n");    
    writestr(ofile,
"****************************************************************************************/\n");
  writestr(ofile,
"#include \"stdafx.h\"\n");
  writestr(ofile,
"#include \"windows.h\"\n");
  writestr(ofile,
"#ifndef _WRITE_BY_GRUANRI_\n");
  writestr(ofile,
"#define _WRITE_BY_GRUANRI_\n");
}

static Save2HEnd(ofile)
{
    writestr(ofile,
"#endif");
}

static Save2HAddItem(ofile,id,add)
{
    auto type,itemsize,MemName;
    type 
= GetMemberFlag(id,add) & DT_TYPE;
              
if ( type == FF_BYTE     ) 
                  
{
                  type 
= "BYTE";
                  itemsize
=GetMemberSize(id,add);
                  }

                    
else if ( type == FF_WORD     ) 
                    
{
                        type 
= "WORD";
                        itemsize
=GetMemberSize(id,add)/2;
                    }

                    
else if ( type == FF_DWRD     ) 
                    
{
                        type 
= "DWORD";
                        itemsize
=GetMemberSize(id,add)/4;
                    }

                    
else if ( type == FF_DWRD     ) 
                    
{
                        type 
= "DWORD";
                        itemsize
=GetMemberSize(id,add)/4;
                    }

                    
else if ( type == FF_STRU     ) 
                    
{
                        type 
= GetStrucName(GetMemberStrId(id,add));
                        itemsize
=GetMemberSize(id,add)/GetStrucSize(GetMemberStrId(id,add));
                    }

                    
else 
                        
{
                          type 
= "BYTE";
                      itemsize
=GetMemberSize(id,add);
                        }

    MemName
=GetMemberName(id,add);
    
if(MemName=="")
        
{
            
return;
        }
                        
    writestr(ofile,
"                  "+type+"   "+MemName);
    
if(itemsize!=1)
    
{
       writestr(ofile,
"["+ltoa(itemsize,10)+"];\n");
    }

    
else
    
{
        writestr(ofile,
";\n");
    }

}

static Save2HAddItems(ofile,id)
{
    auto add,MemName;
    
for ( add= 0;(add!=GetStrucSize(id))&&(add!=-1);add=GetStrucNextOff(id,add) ) 
    
{
        MemName
=GetMemberName(id,add);

      
if (strstr(MemName,"::")==-1
          
{
            Save2HAddItem(ofile,id,add);
          }
 
          
else
          
{
              
return;
          }


          
    }

}

static Save2HStruct(ofile,id)
{
    auto structname;
    structname
=GetStrucName(id);
    writestr(ofile,
"/***************************************************************************************\n");
    writestr(ofile,
"結構體名稱:"+GetStrucName(id)+"\n");
    writestr(ofile,
"固定  注釋:"+GetStrucComment(id,0)+"\n");
    writestr(ofile,
"重復  注釋:"+GetStrucComment(id,1)+"\n");
    writestr(ofile,
"結構體大小:"+ltoa(GetStrucSize(id),10)+"\n");
    writestr(ofile,
"成員  個數:"+ltoa(GetMemberQty(id),10)+"\n");
    writestr(ofile,
"****************************************************************************************/\n");
    writestr(ofile,
"typedef struct \n");
    writestr(ofile,
"                {\n");
    Save2HAddItems(ofile,id);
    writestr(ofile,
"                }"+structname+",*p"+structname+";\n");
}

static main()
{
    auto file,filename,idx,id,structname;
    filename
=AskFile(1,"*.h","保存頭文件名");
    
if(filename==0)
        
{
            Warning(
"請輸入一個文件名,謝謝!!!!!!");
      
return;
        }

    file
=fopen(filename,"w+");
    Message(
"寫入中"+filename+"\n");
    Save2HStart(file);

    
for ( idx=GetFirstStrucIdx(); idx != -1; idx=GetNextStrucIdx(idx) ) 
  
{
      id
=GetStrucId(idx);
       structname
=GetStrucName(id);

      
if(strstr(structname,"::")==-1)  //這個是過濾結構名帶::的
          {
                Save2HStruct(file,id);
                Message(
"結構名:  "+structname+"\n");
            }

  }

    Save2HEnd(file);
    fclose(file);
}
posted on 2009-11-29 12:42 胡雨田 閱讀(6338) 評論(0)  編輯 收藏 引用 所屬分類: 編程技巧
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲精品自在在线观看| 免费亚洲一区二区| 欧美11—12娇小xxxx| 欧美日韩精品免费| 久久九九电影| 国产一区二区按摩在线观看| 久久精品亚洲一区| 久久久一区二区三区| 欧美一级视频免费在线观看| 欧美韩国在线| 国产精品国产三级国产专播品爱网| 亚洲欧美日韩一区二区| 亚洲欧美日产图| 亚洲精品视频在线观看网站| 亚洲国产精品成人一区二区| 精品999久久久| 一本色道久久综合亚洲精品小说| 欧美成人免费视频| 激情综合色综合久久综合| 欧美国产91| 亚洲国产高清在线| 久久婷婷国产综合尤物精品| 亚洲专区一区二区三区| 免费试看一区| 亚洲欧美中文另类| 亚洲第一在线综合网站| 久久久www成人免费毛片麻豆| 久久精品理论片| 在线精品国产欧美| 性欧美超级视频| 久久久不卡网国产精品一区| 欧美电影资源| 亚洲一区区二区| 欧美激情第9页| 亚洲高清资源| 国产偷自视频区视频一区二区| 99re热精品| 午夜激情综合网| 中文精品视频| 亚洲国产欧美一区二区三区同亚洲 | 99热免费精品在线观看| 91久久国产精品91久久性色| 久久久久久久精| 欧美激情五月| 免费亚洲视频| 欧美日韩精品免费看| 欧美大成色www永久网站婷| 久久视频在线视频| 久久噜噜亚洲综合| 亚洲欧美日韩国产中文| 亚洲缚视频在线观看| 一本色道久久综合亚洲精品小说| 亚洲免费在线电影| 亚洲日本欧美| 久久综合色婷婷| 国产毛片精品视频| 国产欧美日韩视频一区二区三区 | 国产农村妇女精品一区二区| 一区二区日韩| 亚洲黄色性网站| 国产日韩欧美在线视频观看| 久久久精品国产一区二区三区| 亚洲自拍三区| 亚洲欧洲在线一区| 亚洲精品视频在线观看免费| 久久久久久电影| 一区二区三区回区在观看免费视频| 狠狠色狠狠色综合日日小说| 亚洲经典三级| 久久精品欧美日韩| 媚黑女一区二区| 久久青草久久| 欧美成熟视频| 久久精品免费看| 欧美精品在线观看91| 欧美成人一区二区三区| 激情欧美一区二区三区在线观看| 欧美激情一区二区三区高清视频| 久久人人九九| 欧美一区网站| 国产伦精品一区二区三区视频黑人| 亚洲一级黄色片| 久久综合国产精品| 牛牛国产精品| 免费成人高清| 亚洲高清三级视频| 欧美a级片网站| 一区二区久久久久久| 欧美影院成人| 欧美日韩在线播放| 中文在线资源观看网站视频免费不卡 | 韩国美女久久| 国产精品国产精品| 小黄鸭精品密入口导航| 亚洲第一在线综合网站| 欧美在线影院| 国自产拍偷拍福利精品免费一| 一区二区三区欧美日韩| 蜜桃av一区二区三区| 久久一二三区| 伊人久久综合97精品| 欧美在线播放| 亚洲观看高清完整版在线观看| 久久av资源网站| 一本色道久久88亚洲综合88| 欧美午夜精品一区| 久久精品在线播放| 亚洲欧美一区二区视频| 国产精品视频最多的网站| 亚洲国产日韩在线| 亚洲视频在线观看三级| 欧美性大战xxxxx久久久| 欧美激情网友自拍| 国产精品伦理| 欧美激情bt| 国产精品二区二区三区| 最新日韩在线| 国产欧美日韩专区发布| 亚洲国产日韩欧美综合久久| 欧美日韩国产高清| 99re视频这里只有精品| 国产精品久久久久aaaa九色| 午夜视频一区在线观看| 国产精品久久久久99| 午夜精品视频在线| 亚洲国产欧美一区二区三区同亚洲| 久久精品天堂| 久久一二三区| 影音先锋另类| 在线不卡视频| 亚洲一区二区三区四区在线观看 | 欧美在线三级| 久久久久久网| 久久久精品国产一区二区三区 | 久久综合一区| 欧美成人资源| 亚洲福利视频在线| 亚洲福利视频网站| 久久久久亚洲综合| 久久中文字幕一区| 一区二区动漫| 欧美成人首页| 小黄鸭精品aⅴ导航网站入口| 一个色综合导航| 国产一区二区三区久久悠悠色av| 午夜精品久久久久久久久| 亚洲盗摄视频| 激情成人av在线| 午夜精品影院在线观看| 久久久久久亚洲精品中文字幕| 亚洲美女视频在线观看| 国产精品www色诱视频| 免费欧美日韩国产三级电影| av成人免费观看| 欧美有码视频| 亚洲免费黄色| 欧美a级在线| 欧美一区午夜精品| 午夜精品久久久久久久99热浪潮| 国产日韩欧美精品| 久久成人羞羞网站| 午夜激情一区| 亚洲亚洲精品在线观看 | 亚洲主播在线播放| 欧美性生交xxxxx久久久| 久久深夜福利免费观看| 一本大道久久精品懂色aⅴ | 亚洲精品美女91| 亚洲伊人网站| 老司机免费视频一区二区| 亚洲国产中文字幕在线观看| 久久精品日韩欧美| 欧美高清在线播放| 欧美大片第1页| 9国产精品视频| 亚洲欧美三级在线| 亚洲一区二区在线看| 夜夜嗨av色一区二区不卡| 99国产麻豆精品| 久久成人精品无人区| 久久久www成人免费无遮挡大片| 亚洲免费在线播放| 欧美插天视频在线播放| 欧美美女bb生活片| 欧美激情一级片一区二区| 国产精品夜夜嗨| 在线成人中文字幕| 一区二区三区日韩精品视频| 久久久水蜜桃av免费网站| 91久久精品国产91性色tv| 久久综合狠狠综合久久激情| 亚洲激情一区二区| 亚洲无毛电影| 欧美视频不卡中文| 亚洲第一色在线| 一区二区日韩伦理片| 久久久久欧美精品| 亚洲欧美在线免费| 国产精品卡一卡二卡三| 夜久久久久久|