入門級crackme分析
1、ctrl + n 檢視程式引入那些函式
2
、下函式斷點
bpx getdlgitemtexta
然後f9
執行,中斷下來。
3
、找到演算法入口,分析演算法如下
crackme
滿足條件:
1、註冊名長度在
3-9之間
2、註冊碼第乙個字元被
0x11cf
整除餘數為
0x17
演算法如下
1、生成中間碼(很囉嗦)
2、中間碼還原成真碼
3、真碼與輸入碼
4個字元一組比較
4
、序號產生器
int main(int argc, char* argv)
for(i=0;i
mid[len+1]='/0';
strcat(mid,"-");
temp=(len*sum)%0x64+0x30;
ultoa(temp,lastnum,10);
strcat(mid,lastnum); //
還原成真碼
int m_len=strlen(mid);
for(i=1;i
printf("
註冊碼serial:%s/n",mid);
return 0; }
5
、學習彙編知識
leaedi, dword ptr [ebp-11f]
leaesi, dword ptr [402443]
movecx, 1b
repmovs byte ptr es:[edi], byte ptr [esi]
rep
指令
a:執行指令
a,
ecx次數
一共開闢
ecx*4
個位元組空間
movsx opd,opsops
內容
----
à
opd
,左邊空缺用
ops符號填充
movzx opd,opsops
內容
----
à
opd
,左邊空缺以
0填充
moveax, 11cf
movzxecx, byte ptr [ebp-31f]
cdqidivecx
cdq:eax
符號擴充套件到
edx ---------
à
edx:eax
雙字擴充套件
4字
idiv ops :
帶符號除法
被除數
edx:eax
除數
ops
edx:eax /ops
商
--------
à
eax
edx:eax/ops
餘數
-----
à
edx
mov ecx,0a
cdqidiv ecx
add edx,30
數字00x30edx%0a+0x30
轉換為數字的
ascii
碼大寫字母
a0x41edx%0a+0x41
轉換為大寫字母的
ascii
碼小寫字母
a0x61edx%0a+0x61
轉換為小寫字母的
ascii
碼
mov di ,offset bufdat
mov cx ,length bufdat
mov al ,00
cld
:高位址取
sld:低位址取
rep stosbstosb
一次複製乙個位元組
al--àdi
mov ecx, 30h
mov eax,0cccccccch
rep stos dword ptr es:[edi]
stos
是串儲存指令,它的功能是將
eax中的資料放入
edi所指的位址中,同時,
edi會增加
4(位元組數)。
rep時指令重複執行
ecx中填寫的次數。
6
、函式呼叫規則:呼叫者和被呼叫者函式間傳遞引數及返回引數的方法
windows
下函式呼叫方式由
pascal
方式pascal
呼叫規則:(1
)引數從左到右入棧;(2
)被呼叫引數在返回前自行清理堆疊;(3
)不支援可變引數的函式呼叫。c方式
(_cdecl)
_cdecl
呼叫規則:(1
)引數從右到左進入堆疊;(2
)在函式返回後,呼叫者要負責清除堆疊,所以這個呼叫常會生成較大的可執行檔案。
winapi
方式(_stdcall)
_stdcall
又稱為winapi
,其呼叫規則:(1
)引數從右到左入棧;(2
)被呼叫的函式在返回前自行清理堆疊,所以生成的**比
cdecl
小。核心快速呼叫方式
(_fastcall)
c++中this call
方式(_thiscall)
注意:在
windows
中,不管哪種呼叫方式都是返回值放在
eax中,然後返回。外部從
eax中得到返回值。
Linux入門級教程 1 簡介
linux的發行版說簡單點就是將linux核心與應用軟體做乙個打包。目前市面上較知名的發行版有 ubuntu redhat centos debian fedora suse opensuse arch linux solusos 等。目前國內linux更多的是應用於伺服器上,而桌面作業系統更多使用...
入門級演算法
今天我想記錄的是一些關於入門級別的演算法。將乙個字串s對映為乙個整數,使得該整數可以唯一的代表字串s。先假設字串均由大寫字母a z構成,不妨設a z為0 25,即將26個大寫字母對應到了二十六進製制中。按照將二十六進製制轉換為十進位制的思路,即可實現將字串對映為整數的需求。題目 給出n個字串 恰好由...
PKI入門級介紹
隨著電子商務的迅速發展,資訊保安已成為焦點問題之一,尤其是網上支付和網路銀行對資訊保安的要求顯得更為突出。為了能在網際網路上開展安全的電子商務活動,公開金鑰基礎設施 pki,public key infrastructure 逐步在國內外得到廣泛應用。我們是否真的需要 pki pki 究竟有什麼用?...