亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dcu32int.dpr

?? 反匯編delphi的.dcu文件至匯編代碼的工具的所有源代碼, 用delphi/pascal實現, 反向工程borland delphi寫的程序必備
?? DPR
字號:
{$A+,B-,C+,D+,E-,F-,G+,H+,I+,J+,K-,L+,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1}
{$APPTYPE CONSOLE}
program dcu32int;
(*
The main module of the DCU32INT utility by Alexei Hmelnov.
----------------------------------------------------------------------------
E-Mail: alex@icc.ru
http://hmelnov.icc.ru/DCU/
----------------------------------------------------------------------------

See the file "readme.txt" for more details.

------------------------------------------------------------------------
                             IMPORTANT NOTE:
This software is provided 'as-is', without any expressed or implied warranty.
In no event will the author be held liable for any damages arising from the
use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented, you must not
   claim that you wrote the original software.
2. Altered source versions must be plainly marked as such, and must not
   be misrepresented as being the original software.
3. This notice may not be removed or altered from any source
   distribution.
*)
//  {$IFNDEF LINUX}Windows,{$ELSE}LinuxFix,{$ENDIF}

uses
  SysUtils,
  DCU32 in 'DCU32.pas',
  DCUTbl in 'DCUTbl.pas',
  DCU_In in 'DCU_In.pas',
  DCU_Out in 'DCU_Out.pas',
  FixUp in 'FixUp.pas',
  DCURecs in 'DCURecs.pas',
  DasmDefs in 'DasmDefs.pas',
  DasmCF in 'DasmCF.pas',
  DCP in 'DCP.pas',
  DasmX86 in 'DasmX86.pas',
  DasmMSIL in 'DasmMSIL.pas';

{$R *.res}

procedure WriteUsage;
begin
  Writeln(
  'Usage:'#13#10+
  '  DCU32INT <Source file> <Flags> [<Destination file>]'#13#10+
  'Destination file may contain * to be replaced by unit name or name and extension'#13#10+
  'Destination file = "-" => write to stdout.'#13#10+
 {$IFNDEF LINUX}
  'Flags (start with "/" or "-"):'#13#10+
 {$ELSE}
  'Flags (start with "-"):'#13#10+
 {$ENDIF}
  ' -S<show flag>* - Show flags (-S - show all), default: (+) - on, (-) - off'#13#10+
  '    A(-) - show Address table'#13#10+
  '    C(-) - don''t resolve Constant values'#13#10+
  '    D(-) - show Data block'#13#10+
  '    d(-) - show dot types'#13#10+
  '    F(-) - show Fixups'#13#10+
  '    H(+) - show Heuristic strings'#13#10+
  '    I(+) - show Imported names'#13#10+
  '    L(-) - show table of Local variables'#13#10+
  '    M(-) - don''t resolve class Methods'#13#10+
  '    O(-) - show file Offsets'#13#10+
  '    S(-) - show Self arguments of methods and 2nd call flags of `structors'#13#10+
  '    T(-) - show Type table'#13#10+
  '    U(-) - show Units of imported names'#13#10+
  '    V(-) - show auxiliary Values'#13#10+
  '    v(-) - show VMT'#13#10+
  ' -O<option>* - code generation options, default: (+) - on, (-) - off'#13#10+
  '    V(-) - typed constants as variables'#13#10+
  ' -I - interface part only'#13#10+
  ' -U<paths> - Unit directories'#13#10+
  ' -P<paths> - Pascal source directories (just "-P" means: "seek for *.pas in'#13#10+
  '    the unit directory"). Without this parameter src lines won''t be reported'#13#10+
  ' -R<Alias>=<unit>[;<Alias>=<unit>]* - set unit aliases'#13#10+
  ' -N<Prefix> - No Name Prefix ("%" - Scope char)'#13#10+
  ' -D<Prefix> - Dot Name Prefix ("%" - Scope char)'#13#10+
  ' -A<Mode> - disAssembler mode'#13#10+
  '    S(+) - simple Sequential (all memory is a sequence of ops)'#13#10+
  '    C(-) - control flow'#13#10
  );
end ;

const
  DCUName: String = '';
  FNRes: String = '';

function ProcessParms: boolean;
var
  i,j: integer;
  PS: String;
  Ch: Char;
begin
  Result := false;
  for i:=1 to ParamCount do begin
    PS := ParamStr(i);
    if (Length(PS)>1)and({$IFNDEF LINUX}(PS[1]='/')or{$ENDIF}(PS[1]='-')) then begin
      Ch := UpCase(PS[2]);
      case Ch of
        'H','?': begin
          WriteUsage;
          Exit;
         end ;
        'S': begin
          if Length(PS)=2 then
            SetShowAll
          else begin
            for j:=3 to Length(PS) do begin
              Ch := {UpCase(}PS[j]{)};
              case Ch of
                'A': ShowAddrTbl := true;
                'C': ResolveConsts := false;
                'D': ShowDataBlock := true;
                'd': ShowDotTypes := true;
                'F': ShowFixupTbl := true;
                'H': ShowHeuristicRefs := false;
                'I': ShowImpNames := false;
                'L': ShowLocVarTbl := true;
                'M': ResolveMethods := false;
                'O': ShowFileOffsets := true;
                'S': ShowSelf := true;
                'T': ShowTypeTbl := true;
                'U': ShowImpNamesUnits := true;
                'V': ShowAuxValues := true;
                'v': ShowVMT := true;
              else
                Writeln('Unknown show flag: "',Ch,'"');
                Exit;
              end ;
            end ;
          end ;
        end ;
        'O':
          for j:=3 to Length(PS) do begin
            Ch := {UpCase(}PS[j]{)};
            case Ch of
              'V': GenVarCAsVars := true;
            else
              Writeln('Unknown code generation option: "',Ch,'"');
              Exit;
            end ;
          end ;
        'I': InterfaceOnly := true;
        'U': begin
          Delete(PS,1,2);
          DCUPath := PS;
        end ;
        'R': begin
          Delete(PS,1,2);
          SetUnitAliases(PS);
        end ;
        'P': begin
          Delete(PS,1,2);
          PASPath := PS;
        end ;
        'N': begin
          Delete(PS,1,2);
          NoNamePrefix := PS;
        end ;
        'D': begin
          Delete(PS,1,2);
          DotNamePrefix := PS;
        end ;
        'A': begin
           if Length(PS)=2 then
             Ch := 'C'
           else
             Ch := UpCase(PS[3]);
           case Ch of
            'S': DasmMode := dasmSeq;
            'C': DasmMode := dasmCtlFlow;
           else
             Writeln('Unknown disassembler mode: "',Ch,'"');
             Exit;
           end ;
        end ;
      else
        Writeln('Unknown flag: "',Ch,'"');
        Exit;
      end ;
      Continue;
    end ;
    if DCUName='' then
      DCUName := PS
    else if FNRes='' then
      FNRes := PS
    else
      Exit;
  end ;
  Result := DCUName<>'';
end ;

function ReplaceStar(FNRes,FN: String): String;
var
  CP: PChar;
begin
  CP := StrScan(PChar(FNRes),'*');
  if CP=Nil then begin
    Result := FNRes;
    Exit;
  end ;
  if StrScan(CP+1,'*')<>Nil then
    raise Exception.Create('2nd "*" is not allowed');
  FN := ExtractFilename(FN);
  if (CP+1)^=#0 then begin
    Result := Copy(FNRes,1,CP-PChar(FNRes))+ChangeFileExt(FN,'.int');
    Exit;
  end;
  Result := Copy(FNRes,1,CP-PChar(FNRes))+ChangeFileExt(FN,'')+Copy(FNRes,CP-PChar(FNRes)+2,MaxInt);
end ;

function ProcessFile(FN: String): integer {ErrorLevel};
var
  U: TUnit;
  NS,ExcS: String;
  OutRedir: boolean;
  CP: PChar;
begin
  Result := 0;
  OutRedir := false;
  if FNRes='-' then
    FNRes := ''
  else begin
    Writeln{(StdErr)};
    Writeln('File: "',FN,'"');
    NS := ExtractFileName(FN);
    CP := StrScan(PChar(NS),PkgSep);
    if CP<>Nil then
      NS := StrPas(CP+1);
    if FNRes='' then
      FNRes := ExtractFilePath(FN)+ChangeFileExt(NS,'.int')
    else
      FNRes := ReplaceStar(FNRes,FN);
    Writeln('Result: "',FNRes,'"');
//    CloseFile(Output);
    Flush(Output);
    OutRedir := true;
  end ;
  AssignFile(FRes,FNRes);
  TTextRec(FRes).Mode := fmClosed;
  try
    try
      Rewrite(FRes); //Test whether the FNRes is a correct file name
      try
        InitOut;
        FN := ExpandFileName(FN);
        U := Nil;
        try
          U := GetDCUByName(FN,'',0,false,0){TUnit.Create(FN)};
        finally
          if U=Nil then
            U := MainUnit;
          if U<>Nil then
            U.Show;
        end ;
      finally
        FreeDCU;
      end ;
    except
      on E: Exception do begin
        Result := 1;
        ExcS := Format('%s: "%s"',[E.ClassName,E.Message]);
        if TTextRec(FRes).Mode<>fmClosed then begin
          Writeln(FRes);
          Writeln(FRes,ExcS);
          Flush(FRes);
        end ;
        if OutRedir then
          Writeln(ExcS);
      end ;
    end ;
  finally
    if TTextRec(FRes).Mode<>fmClosed then
      Close(FRes);
    if OutRedir then begin
      Writeln(Format('Total %d lines generated.',[OutLineNum]));
      Close(Output);
    end ;
  end ;
end ;

begin
  if not ProcessParms then begin
    Writeln('Call this program with -? or -h parameters for help on usage.');//WriteUsage;
    Exit;
  end ;
  Halt(ProcessFile(DCUName));
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品乱码亚洲一区二区不卡| 色哟哟亚洲精品| 精品国产露脸精彩对白| 日韩vs国产vs欧美| 欧美日韩免费视频| 久久97超碰色| 国产清纯白嫩初高生在线观看91| 成人黄色大片在线观看| 国产精品女主播av| 欧美精品视频www在线观看| 日韩av网站在线观看| 久久九九久精品国产免费直播| 国产精品18久久久久久vr| 日韩理论片一区二区| 欧美亚洲高清一区二区三区不卡| 奇米精品一区二区三区四区 | 欧美日韩国产一级片| 日韩二区三区在线观看| 久久男人中文字幕资源站| 99久久精品国产麻豆演员表| 欧美日韩成人一区二区| 欧美亚洲禁片免费| 国产又粗又猛又爽又黄91精品| 中文字幕在线观看不卡视频| 欧美吞精做爰啪啪高潮| 国产综合成人久久大片91| 成人欧美一区二区三区视频网页 | 精品一区二区成人精品| 国产精品沙发午睡系列990531| 91精彩视频在线| 国内精品久久久久影院色| 一区二区欧美视频| 国产日韩一级二级三级| 欧美三级日韩三级国产三级| 国产精品一区二区在线看| 亚洲午夜在线视频| 欧美国产激情二区三区| 7777女厕盗摄久久久| av在线综合网| 精品夜夜嗨av一区二区三区| 亚洲午夜免费福利视频| 欧美国产日韩亚洲一区| 91精品国产综合久久精品麻豆 | 日韩精品成人一区二区三区| 亚洲国产精品v| 精品捆绑美女sm三区| 欧美性视频一区二区三区| 国产999精品久久| 日本成人中文字幕在线视频| 夜夜嗨av一区二区三区| 中文字幕欧美激情| 日韩精品一区二区三区老鸭窝 | 国产精品久99| 日韩欧美电影一二三| 欧美日韩一本到| 色综合久久久久久久久久久| 国产精品一区二区三区99| 五月婷婷久久综合| 亚洲激情图片一区| 中文字幕中文字幕在线一区 | 97精品国产露脸对白| 国产精品一品二品| 久草中文综合在线| 美日韩黄色大片| 日韩av不卡在线观看| 亚洲国产一区在线观看| 亚洲综合久久久| 亚洲男人都懂的| 亚洲精品乱码久久久久| 亚洲欧美国产三级| 亚洲色图色小说| 亚洲免费色视频| 狠狠色狠狠色综合| 奇米一区二区三区| 蜜臀av性久久久久av蜜臀妖精| 天堂蜜桃91精品| 日韩国产欧美在线观看| 视频一区视频二区中文字幕| 亚洲制服欧美中文字幕中文字幕| 亚洲精品视频自拍| 亚洲一区视频在线| 午夜激情久久久| 日韩国产在线一| 美女视频黄频大全不卡视频在线播放| 日本伊人午夜精品| 极品瑜伽女神91| 成人一区二区在线观看| 波多野结衣精品在线| 99久久精品久久久久久清纯| 欧洲日韩一区二区三区| 欧美日韩免费观看一区三区| 日韩亚洲欧美在线| 久久综合99re88久久爱| 久久精品欧美日韩精品| 国产精品传媒在线| 亚洲二区在线视频| 精品一区二区三区免费毛片爱 | 日韩一本二本av| 国产日韩欧美一区二区三区综合 | 欧美精品一区在线观看| 久久久91精品国产一区二区三区| 国产精品久久久久久久久动漫 | 欧美国产日本韩| 国产精品夫妻自拍| 午夜精品福利在线| 国产麻豆91精品| 91麻豆免费在线观看| 欧美色手机在线观看| 日韩欧美自拍偷拍| 国产精品丝袜一区| 伊人性伊人情综合网| 蜜臀av在线播放一区二区三区| 国产91精品一区二区麻豆网站| 93久久精品日日躁夜夜躁欧美| 97久久精品人人澡人人爽| 精品视频1区2区3区| 精品国产凹凸成av人网站| 中文字幕一区二区三区色视频| 亚洲综合在线视频| 毛片一区二区三区| 色婷婷亚洲一区二区三区| 精品sm在线观看| 洋洋av久久久久久久一区| 国产麻豆91精品| 欧美伦理电影网| 亚洲视频免费在线观看| 狠狠色丁香九九婷婷综合五月| 一本久久a久久免费精品不卡| 欧美tickling网站挠脚心| 亚洲美女一区二区三区| 国内久久精品视频| 在线播放中文字幕一区| 亚洲素人一区二区| 国产乱对白刺激视频不卡| 欧美日韩一区二区欧美激情| 国产精品国产三级国产普通话三级 | 99久久精品免费看国产| 亚洲精品一区二区三区香蕉| 五月天丁香久久| 色婷婷精品大视频在线蜜桃视频| 久久人人爽人人爽| 麻豆精品精品国产自在97香蕉| 欧美影视一区二区三区| 欧美国产精品久久| 国产酒店精品激情| 欧美草草影院在线视频| 日韩精品久久久久久| 欧美午夜精品一区二区蜜桃| 国产精品三级av| 国内精品国产三级国产a久久| 在线播放欧美女士性生活| 亚洲一区二区三区免费视频| 99久久综合99久久综合网站| 国产亚洲欧美一级| 激情综合网激情| 日韩午夜av一区| 美女视频第一区二区三区免费观看网站 | 国产91精品久久久久久久网曝门| 日韩精品自拍偷拍| 韩日av一区二区| 亚洲精品一区二区三区在线观看| 麻豆国产精品官网| 日韩欧美国产电影| 九九在线精品视频| 久久久三级国产网站| 国产精品77777竹菊影视小说| 337p日本欧洲亚洲大胆精品| 精品一区二区三区在线视频| 欧美精品一区二区久久久| 看片的网站亚洲| 337p粉嫩大胆色噜噜噜噜亚洲| 黄色精品一二区| 欧美极品aⅴ影院| 成人精品视频.| 亚洲视频一区在线观看| 色综合久久六月婷婷中文字幕| 亚洲自拍偷拍网站| 欧美日韩不卡一区二区| 免费在线观看成人| 午夜一区二区三区视频| 欧美午夜精品一区二区三区 | 久久久久久毛片| 国产999精品久久久久久| 综合亚洲深深色噜噜狠狠网站| 91免费观看在线| 亚洲成人综合在线| 日韩欧美一区二区在线视频| 久久66热偷产精品| 国产精品久久久久毛片软件| 91丨九色丨蝌蚪丨老版| 亚洲永久精品大片| 日韩免费看网站| 成人av在线一区二区三区| 亚洲欧美一区二区三区孕妇| 欧美色窝79yyyycom| 久久精品国产99| 国产精品女主播在线观看| 欧美少妇bbb| 国产精品12区| 亚洲成人动漫精品|