簡單0llyDbg指令碼學習

2022-02-03 12:07:02 字數 2717 閱讀 2918

剛開始學,菜鳥一b。

下面直接進入主題。

首先練習乙個脫殼。aspack 2.12 -> alexey solodovnikov

我們嘗試用esp定律

程式入口為

00431001 > 60 pushad

00431002 e8 03000000 call crackme2.0043100a

00431007 - e9 eb045d45 jmp 45a014f7

0043100c 55 push ebp

0043100d c3 retn

0043100e e8 01000000 call crackme2.00431014

f8一次,下硬體訪問斷點,f9執行後取消斷點。來到這

004313b0   /75 08           jnz short crackme2.004313ba

004313b2 |b8 01000000 mov eax,1

004313b7 |c2 0c00 retn 0c

004313ba \68 01f04200 push crackme2.0042f001

004313bf c3 retn

004313c0 8b85 26040000 mov eax,dword ptr ss:[ebp+426]

004313c6 8d8d 3b040000 lea ecx,dword ptr ss:[ebp+43b]

f8單步走三次就到達程式oep

00403861    55              push ebp

00403862 8bec mov ebp,esp

00403864 6a ff push -1

00403866 68 f0624000 push crackme1.004062f0

0040386b 68 d44c4000 push crackme1.00404cd4

00403870 64:a1 00000000 mov eax,dword ptr fs:[0]

00403876 50 push eax

00403877 64:8925 0000000>mov dword ptr fs:[0],esp

0040387e 83ec 58 sub esp,58

00403881 53 push ebx

00403882 56 push esi

00403883 57 push edi

00403884 8965 e8 mov dword ptr ss:[ebp-18],esp

00403887 ff15 48604000 call dword ptr ds:[406048] ; kernel32.getversion

整個流程就是——

1、單步f8 

2、記錄esp的位址 

3、在esp的位址處,下硬體訪問斷點 

4、接著執行 

5、刪除硬體斷點 

6、單步走3次 

7、就來到oep了! 

所以指令碼就可以寫了。

指令碼一般都是儲存為osc格式,也可以儲存為txt格式

var addr//定義乙個變數addr 

sto //單步,也就是f8 

mov addr,esp //把此處esp的位址給變數addr 

bphws addr,"r"//下硬體讀取斷點,也就是硬體訪問斷點 

run//執行,也就是f9 

bphwc addr //取消斷點 

sto //單步,也就是f8,第1次 

sto //單步,也就是f8,第2次 

sto //單步,也就是f8,第3次 

cmt eip,"this is the oep! found by joychou"//在eip處,也就是現在od停留了位置加注釋 

msg "dump and fix it"//彈出乙個對話方塊

ret//結束指令碼 

快吃午飯了,寫著玩玩,下午還去圖書館!

下面接著乙個pe pack的殼

整個流程是——

1、單步f8三次

2、記錄esp的位址 

3、在esp的位址處,下硬體訪問斷點 

4、接著執行 

5、刪除硬體斷點 

6、f8一次就到oep

所以指令碼為

1

var addr//

定義乙個變數

2 sto//

單步走3

sto4

sto5

mov addr,esp

6 bphws addr,"r"

//在esp處下硬體訪問斷點

7run

8 bphwc addr//

刪除斷點

9sto

10 cmt eip, "

this is the oep ,found by joychou"//

在eip加注釋

11 msg "

now, dump and fix it"12

13 ret

Day 0 IDEA簡單學習

手動導包 快捷鍵 alt enter 自動導包和優化多餘的包 8.修改類頭的文件注釋資訊 注意 對新建的類才有效 建立內容 alt insert main方法 psvm 輸出語句 sout 複製行 ctrl d 刪除行 ctrl y 向上 下移動 ctrl shift up down 搜尋類 ctr...

Hack World簡單指令碼學習

import requests import time import re url flag for i in range 1,43 flag的字元數為43位 max 127 所有字元總數為127 min 0 for c in range 0,127 s int max min 2 二分法找出正確字...

Shell 指令碼學習 簡單的執行跟蹤

程式是人寫的,難免會出錯。想知道你的程式正在做什麼,有個好方法,就是把執行跟蹤的功能開啟。這會使得shell顯示每個被執行到的命令,並在前面加上 乙個加號後面跟著乙個空格。在指令碼裡,用 set x 命令將執行跟蹤的功能開啟,然後再用 set x 命令關閉它。這個功能對複雜的指令碼比較有用,不過這裡...