日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

160个Crackme023

發(fā)布時(shí)間:2025/3/21 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 160个Crackme023 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 查殼
    • 分析程序
      • 分析條件一
      • 分析條件三
      • 分析條件二
      • 分析條件四
    • 寫(xiě)出注冊(cè)機(jī)

查殼

目標(biāo)程序是一個(gè)用匯編寫(xiě)的帶圖形界面的程序,沒(méi)有殼

分析程序

直接查找錯(cuò)誤的字符串,來(lái)到錯(cuò)誤的提示處,可以看到這個(gè)cmp就是關(guān)鍵比較了

這里會(huì)比較eax是否等于0x10,而eax來(lái)自于0x403166,所以必須讓0x這個(gè)地址的值為0x10才能注冊(cè)成功

直接右鍵->查找所有常量

這里有四個(gè)地址分別對(duì)0x403166進(jìn)行了+4的操作,只要同時(shí)滿(mǎn)足四個(gè)條件,就能注冊(cè)成功了

分析條件一

首先來(lái)分析第一個(gè)地址的401093處的代碼

這里首先獲取用戶(hù)名,然后判斷用戶(hù)名長(zhǎng)度是否為零,不為零則對(duì)0x403166這個(gè)地址執(zhí)行+4操作,所以這個(gè)地方一定會(huì)斷下來(lái)

分析條件三

為什么先看條件三,因?yàn)槲抑耙呀?jīng)分析完了,這四個(gè)位置有一個(gè)先后順序的問(wèn)題,按照順序再來(lái)到00401493這個(gè)地址

這里會(huì)獲取輸入的序列號(hào),然后將序列號(hào)保存到0x403188這個(gè)地址,這個(gè)地址很重要,這個(gè)地址也是一定會(huì)斷下來(lái)的

分析條件二

再來(lái)看條件二,這里就是這個(gè)程序校驗(yàn)的算法了,校驗(yàn)過(guò)程如下

  • 獲取用戶(hù)名
  • 設(shè)置循環(huán)次數(shù),初始值i=0
  • 用戶(hù)名右移i位
  • i++
  • Serial++
  • Serial和username[i]進(jìn)行異或(username[i])指的是用戶(hù)名左移i位后前四個(gè)字母的ASCII值)
  • 保存結(jié)果到403188處
  • 循環(huán)0x10次
  • 分析條件四

    這里首先會(huì)取出0x403188的結(jié)果,然后加上0x9112478,接著比較eax是否為零,為零則403166這個(gè)位置加上4,從這里可以得出條件三的算法結(jié)果必須為0-0x9112478=0xf6eedb88

    寫(xiě)出注冊(cè)機(jī)

    根據(jù)條件三的結(jié)果,我們可以直接逆推出注冊(cè)機(jī)

    int CalcKey() {char* name;unsigned long serial = 0xF6EEDB88;unsigned long *p;name = new char[20]{0};cout << "請(qǐng)輸入用戶(hù)名:";gets_s(name, strlen(name) - 1);for (int i= 0x10 - 1; i >= 0; i--){p = (unsigned long *)&name[i];serial ^= *p;serial--;}cout <<serial << endl;return 0; }

    輸入用戶(hù)名和計(jì)算的序列號(hào),注冊(cè)成功,破解完成

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

    總結(jié)

    以上是生活随笔為你收集整理的160个Crackme023的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。