日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

160个Crackme009

發布時間:2025/3/21 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 160个Crackme009 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 查殼
    • VB Decompiler分析程序
    • 前置知識
    • OD分析算法
    • 寫出注冊機
    • 驗證結果

查殼

先來查一下殼,這個程序是用VB寫的,和008是同一個作者,用的是用戶名和序列號的保護方式,難度可能會有所上升,所以得分析整個按鈕點擊事件的算法。

VB Decompiler分析程序

把程序拖到VB Decompiler里,這個可是VB的逆向神器啊。

重要的信息有兩個,一個是Native Code,說明是自然編譯的,程序在編譯的時候能夠被編譯為機器碼,以Native Code方式編譯的VB程序可以直接用OD調試。

另外一個就是Click的按鈕點擊事件了,因為整個程序只有一個OK按鈕,所以直接就能判定這個就ok按鈕的點擊事件。

記下偏移,來到0x401FF0處。

前置知識

想要分析出來這個Crackme,必須具備兩個VB的前置知識

  • 第一個就是VB的變量特征,VB是采用寄存器接收變量地址,地址是指向一個結構體,首地址存放的是類型編號,首地址+0x8。如果是字符串則首地址+0x8的位置是字符串的地址
  • 第二個VB反匯編中很多時候會在[ebp-0x34]這個堆棧地址中看到最終的計算的結果,至于為什么 待會就知道了

如果你不知道上面兩個規律 這個Crackme絕對會逆的一臉蒙蔽

OD分析算法

隨便輸入一個賬號密碼,直接來到按鈕事件開頭,開始分析整個算法。

首先函數會求出用戶名的長度,怎么知道是求的用戶名的長度呢?首先看堆棧找到參數的地址 數據窗口跟隨,然后首地址+0x8的地方 也就是我內存窗口選中的地址再次數據窗口跟隨。

就找到了真正的參數,這個就是VB變量的存放規則,幾乎無時無刻不在用。

接著步過這個函數,eax返回地址+0x8的位置就是用戶名的長度。

接著以字符串的長度為循環次開始循環。

首先取出用戶名的每一位,然后計算每一位的ASCII值,

然后將用戶名的ASCII值和前一位的ASCII值相加得出結果,再用vbaVarMove這個函數將結果保存到[ebp-0x34]這個地址。想要動態的看到所有的過程可以用上面的方法觀察堆棧參數,找到首地址+0x8的位置詳細分析。

直接跳過這輪循環在[ebp-0x34]的地址處查看最后的結果為0x2C4。

接著用vbaVarMul將用戶名ASCII的結果和0x499602D2相乘,也就是十進制的1234567890,然后再次通過vbaVarMove將計算結果保存到[ebp-0x34]。

然后用-替換掉計算結果的第4位

和結果的第9位

接著將最后計算的結果和原先輸入的密碼做比較,用堆棧的參數和VB的數據結構特點可以看到正確的注冊碼和原先輸入的密碼。

到這里,這個注冊算法就分析完成了

寫出注冊機

int CalcKey() {char szUserName[20] = { 0 }; __int64 result = 0;char key[50] = { 0 };printf("請輸入用戶名:");scanf_s("%s", szUserName, 20);int iUserNameLen = strlen(szUserName);//求出每一位用戶名的和for (int i = 0; i < iUserNameLen; i++){result += szUserName[i];}result *= 1234567890;//轉為字符串sprintf(key, "%I64d", result);//替換第4位和第9位key[3] = '-';key[8] = '-';printf("%s\n", key);return 0; }

驗證結果

輸入用戶名,將計算的序列號填入。OK顯示正常,這個Crackme也就完成了。

需要相關文件的可以到我的Github下載:https://github.com/TonyChen56/160-Crackme

總結

以上是生活随笔為你收集整理的160个Crackme009的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。