• <td id="ae6ms"><li id="ae6ms"></li></td>
  • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
  • <table id="ae6ms"></table>
  • <td id="ae6ms"></td>
    <td id="ae6ms"></td>
  • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
  • <td id="ae6ms"></td>
  • <table id="ae6ms"><li id="ae6ms"></li></table>
  • <table id="ae6ms"></table>
    西西軟件園多重安全檢測下載網站、值得信賴的軟件下載站!
    西西首頁 常用軟件 軟件下載 安卓軟件 游戲下載 安卓游戲 MAC應用 驅動下載 安卓電視
    系統工具網絡工具媒體工具圖形圖像聊天工具應用軟件編程開發手機軟件安卓應用電腦安全字體素材

    ODbgScrip(OllyDbg插件的編寫)

    V1.65.2 中文綠色版
    • ODbgScrip(OllyDbg插件的編寫)V1.65.2 中文綠色版
    • 軟件大小:304KB
    • 更新時間:2011-02-12 16:52
    • 軟件語言:中文
    • 軟件廠商:
    • 軟件類別:國外軟件 / 免費軟件 / 反編譯(譯逆工程)
    • 軟件等級:4級
    • 應用平臺:WinXP
    • 官方網站:http://www.pirinnaturalssoapandspa.com/
    好評:50%
    壞評:50%

    本類精品

    裝機必備軟件

    軟件介紹

     OD插件的編寫,用VC6寫的,大家可以下來學習學習,獻給不會的朋友-OD

    V1.65.2(2007/09/5)
    + BPHWC 不帶參數將刪除所有硬件斷點
    + BC 不帶參數將刪除所有斷點
    + BD 不帶參數將禁止所有斷點
    + BPGOTO 遇見斷點自動跳轉到標簽
    + buf 轉換字符串為ASCII碼到緩沖區
    + GCI 求制定地址的匯編命令信息
    + call 調用標簽子程序,用RET返回
    + TICK 腳步運行時間
    + 腳本行編輯功能
    + 如果腳本重新引導,但腳本斷點所在行不變化,將繼續保持
    * findcmds 修正錯誤
    * 一些小的BUG修正


    1. 關于 ODbgScript
    -------------------
    ODbgScript 是OLLYDBG調試器的一個插件。我個人認為,OllyDbg是目前最好的程序級調試器。
    這個調試器的最大的特色之一就是她的插件體系,這是使得用戶能夠更為有效的擴展她的功能。
    ODbgScript 是一種通過類匯編語言的腳本,來控制OllyDbg自動運行的插件。
    在調試程序時,常常都是僅僅為了要找到某幾個關鍵點,而不得不做大量的重復工作。
    而通過使用我的腳本解釋器,您就可以做到“寫一次腳本,無限使用”

    ODbgScript相對OllyScript最大的升級是你擁有了一個腳本的調試運行窗口,你能很好的控制腳本和觀察
    腳本的運行狀態,在ODbgScript的調試窗口中,你可以單步執行你的腳本,可以手工執行腳本命令,可以在你
    的腳本上下斷點,甚至可以調整你的變量值.這對于你調試你的腳本是有所幫助的,在插件窗口你可以選擇腳
    本運行窗口,它就出來了.

    ODbgScript還有一個日志窗口(LOG),它的開發還不那么完善,我相信在不久的將來,它能為你展現它強大的
    功能.

    ------------------------------

    2. 目前情況(2007年5月2日)
    ----------------------------
    V1.48-
    2006-5-20開始,ODbgScript由hnhuqiong在Epsylon3開放源碼的基礎上進行本地化以及繼續升級.

    v1.0-v1.47
    OllyScript變成ODbgScript,帶有新的圖形界面,從2005-11-4開始由Epsylon3繼承SHaG繼續開發.
    (未知原因從2006-2-6后Epsylon3沒有為OllyScript進行新的升級.)

    v0.92
    OllyScript目前的下載量已經超過一萬次了!這意味著超過2Gb的網絡下載流量。這個結果對我來說還不錯!
    因為我要參與一個xray系統項目,這個項目要花去我不少的時間,所以開發這個插件的步伐可能要放慢了。
    真的對不起大家了。
    (2004年7月10日起SHaG基本放棄對OllyScript的開發,但他開放了他的源碼.)


    2.1 最新更新(+:增加功能 *:BUG修正 -:去掉功能 #:測試功能)
    V1.65.2(2007/09/15)
    + BPHWC 不帶參數將刪除所有硬件斷點
    + BC 不帶參數將刪除所有斷點
    + BD 不帶參數將禁止所有斷點
    + BPGOTO 遇見斷點自動跳轉到標簽
    + buf 轉換字符串為ASCII碼到緩沖區
    + GCI 求制定地址的匯編命令信息
    + call 調用標簽子程序,用RET返回
    + TICK 腳步運行時間
    + 腳本行編輯功能
    + 如果腳本重新引導,但腳本斷點所在行不變化,將繼續保持
    * findcmds 修正錯誤
    * 一些小的BUG修正



    V1.54(2007/06/01)
    +GMI 功能擴展,現可得到如下信息
    MODULEBASE: 模塊基地址
    MODULESIZE: 模塊大小
    CODEBASE: 代碼段基地址
    CODESIZE: 代碼段大小
    DATABASE: 數據段基地址
    RESBASE: 資源段基地址
    RESSIZE: 資源段大小
    IDATATABLE: 輸入表基地址(Base address of import data table)
    entry: 模塊入口
    nsect: 節數目(Number of sections in the module)


    V1.53(2007/05/03)
    + pop,push,test,xchg命令
    + findcmds(查找命令序列)
    * 更換官方PLUGIN重新編譯,消除DBH,DBS的BUG
    * 引導/執行腳本順序紊亂的重大BUG修復(內部引用NRU和MRU混亂),這個BUG困擾了我很久
    原版一直有這個BUG,以前不太注意,最近調試多才下決心解決了這個問題.


    V1.52
    # 中文說明做了大規模的補充和命令解釋以及例子
    # 為兼容以前版本的腳本,去掉了類C的操作符.
    # 添加了asmtxt(調文本asm文件匯編后寫入指定地址, asm文件不支持jmp類匯編)
    + 添加了bpx,bpd功能(下,禁止調用函數斷點);
    + 添加了opentrace功能(打開跟蹤)
    + 添加了setoption功能(調設置菜單)
    + 添加了GAPI功能(判斷指定地址API)
    + 添加了READSTR功能(讀地址中指定大小的字符串)
    + 支持16位寄存器(ax,bx...)
    + find命令全面升級,可以直接支持變量和內存數據以及字符串,并支持搜索范圍
    + findop命令全面升級,可以直接支持變量和內存數據,并支持搜索范圍
    + 添加了findcmd功能(查找命令);
    * 修正編輯變量數量不能大于50的問題
    * var BUG修正
    * GN功能修正,以便和GAPI區別
    * GCMT 錯誤修正(感謝VOLX BUG報告)
    * 修正ASM匯編代碼按照最優模式處理,和OD匯編處理匯編相同(感謝liuyilin BUG報告)
    * 一些程序內部Bug調整

    v1.51
    * 內部函數(getFLTOperatorPos)重大BUG修正(感謝FLY,xxxx BUG報告)

    v1.50 release
    * an引用的api錯誤修正
    * len錯誤修正
    * 一些小的錯誤
    + 添加在腳本窗口中雙擊高亮功能

    V1.49
    # MSG,MSGYN消息框彈出回歸0.92版模式
    # 增加NEG,NOT,ROL,ROR命令
    # (內部增加GetBYTEOpValue函數)
    + 腳本運行窗口增加運行到光標處菜單功能(F4)
    + GMI增加DATABASE,RESBASE,RESSIZE的操作數
    + MUL,DIV命令
    * 修正本地化不準確問題
    * 修正MOV 緩沖區崩潰問題
    * 修正exec/ende不釋放內存問題
    * 修正一些小問題
    * 修正asm指令中的錯誤
    * 修正exec/ende中的錯誤(script_pos計數錯誤,ende被跳過執行)

    v1.48bata (2006-5-20)
    # MUL,DIV命令
    # 腳本運行窗口增加運行到光標處菜單功能(F4)
    # 本地化
    # 適當的增加了一些預判讀語句,防止用戶錯誤造成崩潰
    * 修正BPWM的問題
    * 修正一些字符串定義錯誤
    * 修正一些函數的聲明錯誤(CreateOperands==)
    * 修正緩沖區太小,造成OD崩潰.
    - 上一版本未開發的函數從類中去除(LogRegNr,Process)

    3. 文檔
    ----------------
    在這個版本中,附帶了兩個腳本例子(tElock098.osc 和 UPX.osc)。
    這兩個腳本,可以迅速找到對應殼的入口。


    3.1 語言
    ------------
    OllyScript腳本語言是一個種類匯編的語言。你使用它來控制ODbgScript和腳本運行.

    在后面的文檔中, “源操作數” 和 “目的操作數”表示以下含義:
    - 十六進制常數,既沒有前綴也沒有后綴。 (例如:是00FF, 而不是 0x00FF 和 00FFh的形式)
    十進制常數,在后綴中加點. (例如:100. 128. 也可以是浮點數128.56,浮點數只能保留小數點后2位)
    - 變量,這個變量必須在使用前用Var進行定義
    - 32位寄存器 (EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, EIP)。
    16位寄存器 (AX, BX, CX, DX, SI, DI, BP, SP)
    8位的寄存器(AL, AH, ... DL, DH)
    - 被中括號括起來的內存地址 (例如:[401000] 指向內存地址為401000里存放分數據,
    [ecx] 指向內存地址為寄存器ecx里存放分數據).
    - 一個標志位,帶有感嘆號前綴(!CF, !PF, !AF, !ZF, !SF, !DF, !OF)
    - 字符串,也可叫數據序列。其格式為: #6A0000# (數值在兩個“#”號之間),兩個“#”號之間必須包含至少有一個數值。
    "1234567ABCDEF"
    - 包含“?”通配符的字符串。比如 #6A??00# 或者 #6?0000#

    3.1.1 保留變量
    ------------------------

    $RESULT
    -------

    保存某些函數的返回值,比如FIND函數運行后的結果,等等。
    在ODbgScript的腳本調試窗口,你能觀察到它的變化,并且可以修改它.


    $VERSION
    --------

    ODBGScript的版本信息,它是系統保留變量名.
    例:
    cmp $VERSION, "1.47" //比較是否大于 1.47版
    ja version_above_147


    3.1.2 指令
    ----------------------------------------------

    #INC "文件名"
    ---------

    一個腳本文件包含另外一個腳本.就像調用子程序一樣.兩個腳本中的變量名不能相同.
    例:
    #inc "test.txt"


    #LOG
    ---------
    開始記錄運行指令
    指令會顯示在OllyDbg的log窗口中,每條記錄前都會加上“-->”的前綴
    例:
    #log


    ADD 目的操作數,源操作數
    ---------

    源操作數與目的操作數相加,并把相加的結果保存到目的操作數中,支持字符串相加.
    例:
    add x, 0F // x=x+F
    add eax, x //eax=eax+x
    add [401000], 5 //[401000]=[401000]+5
    浮點數相加
    add x,16.50 //x=x+16.50
    (字符串相加)
    add y, " times" // 如果在次之前y="1000" ,則在執行完此指令之后y="1000 times"


    AI
    ------------

    在OllyDbg中執行“自動步入” [Animate into]操作。
    相當于在OllyDbg中按下CTRL+F7
    例:
    ai

    ALLOC 大小
    ----------
    申請內存, 你能讀/寫/執行.
    例:
    alloc 1000 //新申請內存,大小為1000,返回結果$RESULT放著申請內存的開始地址.
    free $RESULT, 1000

    AN 地址
    -------

    從指定地址處,對代碼進行分析。
    例:
    an eip // 相當于在OllyDbg中按 Ctrl+A鍵


    AND 目的操作數, 源操作數
    -------------

    源操作數與目的操作數進行邏輯與操作,并將結果保存到到目的操作數中。
    例:
    and x, 0F //x=x&&f
    and eax, x //eax=eax&&x
    and [401000], 5 //[401000]=[401000]&&5


    AO
    --

    在OllyDbg中執行“自動步過” [Animate over]操作。
    相當于在OllyDbg中按下CTRL+F8
    例:
    ao

    ASK 問題
    ------------

    顯示一個提示輸入框,讓用戶輸入,結果保存變量$RESULT中(如果用戶按了取消鍵,則$RESULT=0)。
    $RESULT_1中放著輸入的長度.
    (注:程序將判讀你輸入的是字符,$RESULT_1的結果是輸入字符數的數目,整型/2,中文數*2)
    例:
    ask "Enter new EIP"
    cmp $RESULT, 0
    je cancel_pressed
    mov eip, $RESULT


    ASM 地址, 指令
    -----------------

    修改指定地址的指令。
    并將修改后的匯編指令長度保存到保留變量$RESULT中
    例:
    asm eip, "mov eax, ecx" //將當前指令修改為 mov eax,ecx

    ASMTXT 文件
    -----------------

    匯編指定文件中的指令。
    將匯編指令長度保存到保留變量$RESULT中
    并將匯編指令行數保存到保留變量$RESULT_1中
    例:
    asmtxt EIP,"myasm.txt" //將myasm.txt文件中的asm轉成opcode后寫入EIP.


    ATOI str [, base=16.]
    -----------------
    轉換字符串到16進制整型,[可以將任何進制轉成16進制整型]
    返回結果放到 $RESULT
    例:
    itoa "F" //字符串"F"轉成了整型,結果會等于F
    itoa "10", 10. //字符串"10"代表十進制,結果會等于A

    BC 地址
    -------

    清除指定地址的斷點。
    例:
    bc 401000 //清除401000處的斷點
    bc x //清除X(變量值)處的斷點
    bc eip //清除當前EIP處的斷點

    BP addr
    --------

    在指定地址設斷點
    例:
    bp 401000 //在401000處下斷點
    bp x //在X(變量值)處下斷點
    bp eip //在當前EIP處下斷點

    BPCND 地址, 條件
    ----------------

    在指定地址處,設置條件斷點。
    例:
    bpcnd 401000, "ECX==1" //當 代碼執行到401000且 ecx等于1 時,程序暫停

    BPD 函數字符串
    ---------------
    清除調用函數斷點,函數為字符串表示.
    例:
    bpd "GetVersion" //取消呼叫GetVersion的斷點


    BPHWC 地址
    ----------

    刪除指定地址處的硬件斷點。
    例:
    bphwc 401000 //清除 401000處的斷點


    BPHWCALL
    -----------
    清除所有的硬件斷點
    例:
    BPHWCALL //清除所有的硬件斷點


    BPHWS 地址, 模式
    ----------------

    在指定地址,設置硬件斷點。有三種模式: "r" - 讀取, "w" - 寫入 或者 "x" - 執行.
    此斷點只支持1個字節的動作.
    例:
    bphws 401000, "x" //當執行到此地址時產生中斷.
    Bphws 401000,"r" //當讀取401000的時候產生中斷


    BPL 地址, 表達式
    --------------

    在指定地址處設置記錄斷點,將表達式的結果記錄到記錄窗口中。
    例:
    bpl 401000, "eax" // 每次執行到401000時,都將eax寄存器的結果記錄


    BPLCND 地址, 表達式, 條件
    -----------------------

    在指定地址處設置記錄斷點,如果條件為真時,將表達式的結果記錄到記錄窗口中。
    例:
    bplcnd 401000, "eax", "eax > 1" // 如果執行到401000時,滿足eax>1,則將eax寄存器的結果記錄


    BPMC
    ----

    清除內存斷點。
    例:
    bpmc


    BPRM 地址, 大小
    ---------------

    在指定地址處,設置一個內存讀取斷點。 “大小” 是指內存中的字節大小。
    例:
    bprm 401000, FF //在401000中設置內存讀斷點,內存中的大小為FF


    BPWM 地址, 大小
    ---------------

    在指定地址處,設置一個內存寫入斷點?!按笮 ?是指內存中的字節大小。
    例:
    bpwm 401000, FF //在401000中設置內存寫斷點,內存中的大小為FF


    BPX 函數字符串
    ---------------
    設置調用函數斷點,函數為字符串表示.
    返回下了斷點的地址數量,結果保存在保留變量$RESULT中.
    例:
    bpx "GetVersion" //下呼叫GetVersion斷點,斷下的語句為 call [xxxxx]

    BUF var
    -------
    轉換字符串變量到緩沖區(string/dword variable to a Buffer)
    Example:
    mov s, "123"
    buf s
    log s // output "#313233#

    CMP 目的操作數, 源操作數
    -------------

    比較 目的操作數與源操作數的大小,和其對應的匯編指令作用相同。
    可以是各種數值,甚至可以是字符串(對大小不敏感).
    例:
    cmp y, x //比較兩個變量(Y和X)的大小,
    cmp eip, 401000 //比較EIP和401000的大小

    CMT 地址, 字符串
    --------------

    在指定地址處,加入注釋。
    例:
    cmt eip, "這是入口" //當前地址處 加上“這是入口”的注釋

    COB
    ---

    發生中斷后,讓腳本繼續執行(移除EOB指令)
    例:
    COB

    COE
    ---
    (移除EOE指令)
    發生異常后,讓腳本繼續執行
    例:
    COE

    DBH
    ---

    隱藏調試器
    例:
    dbh

    DBS
    ---

    對隱藏的調試器操作進行恢復,不再隱藏。
    例:
    dbs

    DEC 變量
    -------

    對變量進行減一操作
    例:
    dec v //V=V-1


    DIV 目的操作數, 源操作數
    -------------


    源操作數與目的操作數進行除法操作,并將結果保存到到目的操作數中。
    例:
    div x, 0F //X=X/0F
    div eax, x //eax=eax/x
    div [401000], 5 //[401000]/5


    DM 地址, 大小, 文件名
    -------------------

    從指定地址處開始,在內存中提取指定大小的數據,并保存到指定的文件中
    例:
    dm 401000, 1F, "c:\dump.bin"

    DMA 地址, 大小, 文件名
    -------------------

    從指定地址處開始,在內存中提取指定大小的數據,并保存到指定的文件中;如
    果指定文件已存在,則將數據追加到指定文件尾部。
    例:
    dma 401000, 1F, "c:\dump.bin"

    DPE 文件名, 入口
    ----------------

    提取執行模塊到指定文件中。
    “入口”用來設定入口地址。
    這個命令用來抓取文件,還是比較好用的,因為直接利用了OD強大的內存管理功能.
    例:
    dpe "c:\test.exe", eip //入口為當前地址,保存為C盤下test.exe

    EOB 標簽
    ---------

    在下次中斷發生時,跳轉到指定標簽處。
    此功能和EOE命令常常讓新手迷惑不解,其實就是遇見中斷做腳本的流程轉向.
    如果還有不懂,請看下文的答疑解惑章節.
    例:
    eob SOME_LABEL

    EOE 標簽
    ---------

    在下次異常發生時,跳轉到指定標簽處。
    例:
    eoe SOME_LABEL

    ESTI
    ----

    相當于在OllyDbg按 SHIFT-F7。
    例:
    esti

    ESTO
    ----

    相當于在OllyDbg按 SHIFT-F9。
    例:
    esto


    EVAL
    ----

    計算含義變量的表達式。
    變量必須已經在腳本中聲明。
    注意:插到字符串中時,要放在大括號{ }中。
    結果保存在保留變量$RESULT中.
    這句和其它語句結合將產生很多的變化,用好它將讓你的腳本十分靈活.
    例:
    var x
    mov x, 1000
    eval "x的值是 { x }" // 執行后$RESULT為 "x的值是00001000"


    EXEC/ENDE
    ---------
    <EXECute/END of Execute>
    對當前調試進程,執行在EXEC和ENDE之間的指令。
    有這個命令就是你可以直接跳入進程,對進程進行直接控制.
    它的原理就是取當前進程的信息進行保存,然后新分配一個代碼內存區(可讀/寫/執行.大小1000)
    調用OD匯編器將你的匯編語句轉成OPcode,將OPcode拷貝到代碼區,然后將EIP指向你的代碼開頭.
    然后將控制權交給你.執行完后將EIP歸還原位,然后將控制權交還ODbgScript.
    這里的好處就是讓你以很高的效率來避免在較慢的腳本環境運行需要高效的操作.
    !注意:由于進程控制權交給你了,那么,你的代碼有效性將只有你自己來控制了.
    !注意:執行后不保存現場.這都需要你來做工作.(要保存現場,你可以使用pushad,popad)
    有大括號的,會被大括號中的變量的值替代。
    例:
    // 以下是做移動操作
    var x
    var y
    mov x, "eax"
    mov y, "0DEADBEEF"
    exec
    mov {x},{y} // 到進程中新開的代碼區去,mov eax,0DEADBEEF 將被執行
    mov ecx, {x} //mov ecx, eax 將被執行
    ende
    // 以下是調用調試程序的ExitProcess函數
    exec
    push 0
    call ExitProcess
    ende
    ret

    FILL addr,len,value
    -------------------------
    從地址addr開始填充長度為len的值value
    !注:value的值最大8個字節,可以為寄存器值,標志位值,變量值,16進制值,10進制值,[]指針操作數.
    如:
    fill 401000,10,90 //NOP 10h個字節
    fill 401000,ff,[eax] //取出[eax]值,填充到401000,長度為ff
    fill 401000,ff,$RESULT //將變量$RESULT的值填充到401000,長度為ff

    FIND 地址, 查找內容 ,[最大大小]
    ---------------

    從指定地址開始在內存中查找指定的內容。
    如果查找成功,地址會保存到保留變量$RESULT中,否則$RESULT將等于 0。
    查找的串支持通配符“??”(見下面的例子)。
    ##中的為HEX,""中的為字符串,什么都不帶的為內存數據
    !注:輸入的16進制字符必須是成偶數
    從1.52版開始支持直接變量和數據查找.
    例:
    find eip, #6A00E8# // 查找一個Call,其的第一個參數為0 (push 0)
    find eip, #6A??E8# // 查找一個帶參數的Call,一個?代表一個字符常量
    find eip,"kernel32.dll" //查找字符串"kernel32.dll"
    find eip,"ker???32.d??" //查找帶通配符的?字符串,一個?代表一個字符串常量
    (請注意這里的通配符?和HEX中的?不同)

    find eip,15ff //查找內存數據15ff(代碼為ff115)
    (mov tmp,#ff15#
    find eip,tmp ) //查找變量tmp中的數值,tmp=ff15
    (mov tmp,"kernel32.dll"
    find eip,tmp ) //查找變量tmp中的字符串"kernel32.dll"
    (mov tmp,15ff
    find eip,tmp //查找變量tmp中的內存數據15ff(注意和#ff15#區別)
    (ask "輸入需要的數據"
    find eip,$RESULT //輸入的為#ff15#,"Kernel32.dll",15ff就同上面三例子

    find eip,#ff15#,ff //從EIP開始,FF大小范圍內,查找字符ff15,


    FINDCMD 地址, 查找內容
    -----------------

    從指定地址開始查找指定一個命令。
    如果查找成功,地址會保存到保留變量$RESULT中,否則$RESULT將等于 0。
    例:
    findcmd 401000, "push eax" // find "push eax"


    FINDCMDS 地址, 查找內容
    -----------------

    從指定地址開始查找指定命令序列。
    如果查找成功,地址會保存到保留變量$RESULT中,否則$RESULT將等于 0。
    注:命令序列分割請使用;號(分號).

    例:
    findcmd 401000, "push eax;mov eax,edx" // 尋找"push eax和mov eax,edx"命令序列


    FINDOP 地址, 查找內容,[查找范圍]
    -----------------

    從指定地址開始查找指定一個指令,這個指令是以指定內容為開始的。
    如果查找成功,地址會保存到保留變量$RESULT中,否則$RESULT將等于 0。
    查找的串支持通配符“??”(見下面的例子)。
    注意:findop由于是opcode查找,不支持字符串查找.
    findop和find的區別是findop查找到的必須是opcode.
    1.52起支持直接變量和內存數據
    例:
    findop 401000, #61# // find next POPAD
    findop 401000, #6A??# // find next PUSH of something
    譯者注:
    對比一下FIND 和FINDDOP的區別:
    地址 數據 代碼
    00401007 B8 3300 MOV EAX, 33
    0040100C 33F6 XOR ESI, ESI
    find 401007, #33# //$RESULT等于401008
    finddop 401007, #33# //$RESULT等于40100C


    FINDMEM what [, StartAddr]
    --------------------------
    從整個內存開始在內存中查找指定的內容
    如果查找成功,地址會保存到保留變量$RESULT中,否則$RESULT將等于 0。
    查找的串支持通配符“??”(見下面的例子)。
    Example:
    findmem #6A00E8# // find a PUSH 0 followed by some kind of call
    findmem #6A00E8#, 00400000 // search it after address 00400000

    FREE
    FREE 地址 大小
    -----------
    釋放由ALLOC申請的內存.
    Example:
    alloc 1000
    free $RESULT, 1000

    GAPI
    GAPI 地址
    ------------
    獲得指定代碼處的API調用信息
    API信息保存到保留變量$RESULT中。
    如果符號名是一個API函數,則
    $RESULT保存API信息
    $RESULT_1保存鏈接庫名(比如 kernal32)
    $RESULT_2保存符號名(比如 ExitProcess)。
    $RESULT_3保存調用地址XXXX(比如 call xxxxx)
    注意:這個和GN的區別是GN必須指向IAT地址
    而GAPI直接給出代碼地址就可得出API
    還有如果你是在此處下了軟件斷點,請先清除斷點再用此句,因為軟件斷點修改了代碼為CC
    這里如果不清除此處的軟件斷點,將造成這句不能很好的識別.
    例:
    GAPI 401000 (call kernal32.ExitProcess)
    GAPI EIP //查看當前代碼是否是API調用,不是則返回0


    GCMT addr
    ---------
    獲得指定地址處的解釋

    GCI addr, info
    --------------
    獲得制定地址的匯編指令信息
    "info" can be :
    - 匯編指令字符串 (like OPCODE)
    - 目標地址 of jump/call/return
    - 命令長度(OPCODE)
    - TYPE for asm command string (one of C_xxx, see OllyDbg Plugin API)


    GMEMI addr, info
    ----------------
    獲得指定地址處內存的信息.
    信息可以是 MEMORYBASE, MEMORYSIZE or MEMORYOWNER
    Example:
    GMEMI addr, MEMORYBASE // After this $RESULT is the address to the memory base of the memory block to which addr belongs

    GMI 地址, 信息
    --------------

    獲得指定地址所在模塊的相關信息。
    “信息”可以是
    MODULEBASE: 模塊基地址(base address of module in the memory space of debugged process)
    MODULESIZE: 模塊大小(total size occupied by module, not necessarily contiguous memory)
    CODEBASE: 代碼段基地址
    CODESIZE: 代碼段大小(size of executable code, as stays in COFF header. In some cases, OllyDbg may correct definitely invalid code size)
    DATABASE: 數據段基地址
    RESBASE: 資源段基地址
    RESSIZE: 資源段大小
    IDATATABLE: 輸入表基地址(base address of import data table, as stays in COFF header)
    entry: 模塊入口(ddress of module's entry point, as stays in COFF header)
    nsect: 節數目(Number of sections in the module)
    (如果您想在將來的版本中,獲得更多的信息,請聯系我)。
    信息會保存到保留變量$RESULT中 (如果沒有找到信息,則$RESULT等于0).
    例:
    GMI eip, CODEBASE // 這條指令執行后,$RESULT等于當前所在模塊的代碼段基地址。


    GN 地址
    -------

    獲得指定IAT地址的符號名(比如指向API函數)。
    符號名將保存到保留變量$RESULT中。
    如果符號名是一個API函數,則
    $RESULT是符號名
    $RESULT_1保存鏈接庫名(比如 kernal32)
    $RESULT_2保存符號名(比如 ExitProcess)。
    例:
    gn 450100

    GO 地址
    -------

    執行到指定地址處
    例:
    go 401005

    GPA 函數名, 動態鏈接庫名
    -------------

    在指定的動態鏈接庫中,獲得指定函數的地址。
    如果查找成功,地址會保存到保留變量$RESULT中,否則$RESULT將等于 0。
    在設置API函數斷點時,這個指令非常有效。
    例:
    gpa "MessageBoxA", "user32.dll" // 這條指令執行后,$RESULT等于函數MessageBoxA的地址,您可以
    使用"bp $RESULT"設置斷點。

    GPI key
    -------------
    獲得進程的信息.
    這個信息可以是HPROCESS,PROCESSID,HMAINTHREAD,MAINTHREADID,MAINBASE,PROCESSNAME,EXEFILENAME,CURRENTDIR,SYSTEMDIR

    GPP key
    --------------
    find API parameters number and types

    HANDLE x, y, class
    ---------------------
    返回指定點(16進制)子窗口指定類的句柄


    INC 變量
    -------

    對變量進行加一操作
    例:
    inc v

    ITOA n [, base=16.]
    -----------------
    轉化一個整數到字符串
    結果放在 $RESULT
    Example:
    itoa F
    itoa 10., 10.

    JA 標簽
    --------

    在cmp命令后使用. 和其對應的匯編指令作用相同.
    例:
    ja SOME_LABEL

    JAE 標簽
    ---------

    cmp. 和其對應的匯編指令作用相同.
    例:
    jae SOME_LABEL

    JB 標簽
    --------

    在cmp命令后使用. 和其對應的匯編指令作用相同.
    例:
    jb SOME_LABEL

    JBE 標簽
    ---------

    在cmp命令后使用。和其對應的匯編指令作用相同.
    例:
    jbe SOME_LABEL

    JE 標簽
    --------

    在cmp命令后使用. 和其對應的匯編指令作用相同.
    例:
    je SOME_LABEL

    JMP 標簽
    ---------

    跳轉到指定標簽.
    例:
    jmp SOME_LABEL

    JNE 標簽
    ---------

    在cmp命令后使用. 和其對應的匯編指令作用相同.
    例:
    jne SOME_LABEL

    KEY vkcode [, shift [, ctrl]]
    --------------------------
    仿真按下鍵盤.
    Example:
    key 20
    key 20, 1 //Shift+space
    key 20, 0, 1 //Ctrl+space

    LBL 地址, 字符串
    --------------

    軟件標簽: OllyDbg
    Doc 目錄下面有 OllyScript中文說明-1.65.txt

    軟件截圖

    ODbgScrip(OllyDbg插件的編寫) V1.65.2 中文綠色版

      其他版本下載

      熱門評論

      最新評論

      發表評論 查看所有評論(0)

      昵稱:
      表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
      字數: 0/500 (您的評論需要經過審核才能顯示)

      下載幫助下載幫助西西破解版軟件均來自互聯網, 如有侵犯您的版權, 請與我們聯系。

      TOP
      軟件下載
      女人让男人桶30分钟免费视频,女人张开腿让男人桶个爽,一进一出又大又粗爽视频
    • <td id="ae6ms"><li id="ae6ms"></li></td>
    • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
    • <table id="ae6ms"></table>
    • <td id="ae6ms"></td>
      <td id="ae6ms"></td>
    • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
    • <td id="ae6ms"></td>
    • <table id="ae6ms"><li id="ae6ms"></li></table>
    • <table id="ae6ms"></table>