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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

160个Crackme007

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

文章目錄

    • 查殼
    • Darkde分析程序
    • 導入符號
      • 分析核心算法
      • 寫出注冊機
      • 校驗結果
    • 分析again按鈕事件
    • 校驗步驟

007這個crackme跟006是同一個作者,只不過難度上升了一顆星。先來查一下殼吧

查殼

還是Delphi寫的程序,沒有殼。接下來用Darkde分析一下程序。

Darkde分析程序

右邊這個again按鈕是被隱藏的。然后再來看事件

這里有以下幾個事件:

  • Cancella按鈕的點擊事件
  • About按鈕的點擊事件
  • Registerz按鈕的點擊事件
  • Again按鈕的點擊事件

總共四個按鈕事件。我們就從Registerz按鈕的點擊事件開始分析。

導入符號

接下來拖到IDA里,添加所有的Delphi簽名。導出Map文件,導入到OD里,方便接下來的分析。

##分析Register按鈕事件

找到0x442F28的位置,下斷點分析。


函數首先獲取密碼,然后檢測密碼是否為純數字,不是則報錯。但是我們必須讓他報一次錯。因為當密碼不為純數字的時候,他會根據密碼生成一個值,這個值在后面必須要用到。如果密碼為純數字,則這個必須的值恒為零,注冊永遠不會成功。

接著如果輸入的密碼不是純數字,那么則會根據輸入的密碼生成一個值,這個值在后面的核心算法會用到,至于是怎么算的我就不知道了。所以我將這個值固定一下,把第一次輸入的密碼固定為GuiShou,。

接下來獲取用戶名,然后有一個核心的算法,算法通過返回值為1則控件消失,否則不通過。接下來分析核心算法。

分析核心算法

首先獲取用戶名的長度,判斷用戶名長度是否小于等于4。是則報錯。

接下來是個兩層循環,計算的是用戶名的第一位和最后一位的乘積,然后再乘以剛剛用用戶名計算出來的被我固定的值。外層循環變換用戶名最后一位,每次往前移動一位。內層循環變換用戶名第一位,每次往后移動一位。接著將結果保存到eax。

接著將eax對0xA2C2A取模,記為結果1,然后將輸入的密碼除以0x59加上密碼模以0x50再加1的值,記為結果2。然后比較結果1和結果2是否相等。相等則返回1,消失按鈕。不相等則返回0。

寫出注冊機

為了防止最后計算的結果產生溢出,所以我將用戶名固定為5位。代碼如下。

int CalcKey1() {int nKey = 0x1C48;char szName[10] = { 0 };int nCode = 0;int nTemp = 0;printf("請輸入用戶名:");scanf_s("%s", szName, 10);if (strlen(szName)!=5){printf("請輸入五位用戶名\n");return 0;}//根據name字符串計算for (int i = 1; i <= 5; i++){for (int j = 5; j >= 1; j--){nTemp += szName[i - 1] * szName[j - 1] * nKey;}}//取模nTemp = nTemp % 0xA2C2A;//反推codenCode = (0x50 - ((nTemp - 1) * 0x59 % 0x50)) + (nTemp - 1) * 0x59;printf("%d\n", nCode);return 0; }

校驗結果

首先輸入用戶名為12345(不固定 但限制長度必須為5),密碼輸入GuiShou(密碼已固定)。然后點擊,提示報錯信息直接點擊確定。

接著將用戶名輸入到注冊機中,然后復制生成的序列號,點擊注冊,可以看到注冊按鈕消失。

分析again按鈕事件

接下來來到0x4430BC這個位置,分析整個again按鈕的點擊事件。這個按鈕事件跟Register完全一樣。

首先是獲取密碼,然后檢測密碼是否為純數字,不是則報錯,然后根據非純數字的密碼計算出一個值。

接著傳入參數,又到了核心的算法函數,這個函數跟之前分析的一模一樣。所以這個crackme到這里就算了完全結束了。最后做一下總結。

校驗步驟

  • 首先輸入用戶名(內容隨意,長度必須的五位數,為了防止最后的結果溢出),然后輸入固定的密碼GuiShou,點擊注冊,彈框報錯直接點擊確定即可
  • 接著將用戶名輸入到注冊機,會算出一個序列號,再把這個序列號粘貼到Codice處,按鈕消失。如圖:
  • 接著再次再密碼框輸入GuiShou,報錯后點擊確定
  • 接著還是輸入剛才注冊機計算出來的序列號,點擊again按鈕,按鈕消失,破解完成
  • 需要相關文件的可以到我的Github下載:https://github.com/TonyChen56/160-Crackme

    總結

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

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