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

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

生活随笔

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

CM005-逆向分析过程(上篇)

發(fā)布時(shí)間:2025/6/17 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CM005-逆向分析过程(上篇) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

005,都說(shuō)比較變態(tài),很多人給放過(guò)去了,但是我還是決定上了它,既然變態(tài)就分兩篇,上篇先實(shí)際說(shuō)流程,到底應(yīng)該怎么上它,下篇會(huì)告訴逆向分析的過(guò)程和方法

?

準(zhǔn)備

【環(huán)境和工具】

  • win7/xp虛擬機(jī)環(huán)境

  • CrackMe005(ajj2.zip)

  • ollydbg

  • Dededark

  • peid

  • UPXEasyGUI.exe

【學(xué)習(xí)層次】

  • 這個(gè)CM作者聲明了,“爆”他是不認(rèn)可的

  • 解密流程,寫(xiě)key

  • 積累Delphi程序逆向特點(diǎn)經(jīng)驗(yàn)

?

實(shí)戰(zhàn)圖文

一.最終效果動(dòng)圖展示

?

整個(gè)流程

注意:建議使用我已經(jīng)修改過(guò)的原版,修改點(diǎn)只有一個(gè)字符X盤(pán)符改成了C盤(pán)符,否則你需要增加X(jué)分區(qū)或者改盤(pán)符,擱不住,所以我修改了程序,當(dāng)然你也可以自己脫殼后,自己搜索字符串,自己再改盤(pán)符字符串

1.復(fù)制目錄下ok.txt,到C:\ajj.126.c0m\j\o\j\o\ok.txt,這里我給原版的X盤(pán)改成C盤(pán)了,不然就改分區(qū)。

2.這時(shí)就應(yīng)該可以顯示出Edit2文本框,但是是禁用狀態(tài)。

3.右鍵點(diǎn)擊5次注冊(cè)按鈕(注意是右鍵)。

4.左鍵雙擊圖框區(qū)空白處(不能點(diǎn)著圖),Edit2文本框禁用解除。

5.用戶(hù)名輸入ajj

6.Edit2文本框內(nèi)輸入1_345,78后左鍵雙擊Edit2輸入框中任何位置。

7.在圖片是“性相近”的時(shí)候,鼠標(biāo)從軟件框右下腳移入軟件框內(nèi)。

8.在圖片是“性本善”的時(shí)候,鼠標(biāo)從軟件框左下角移入軟件框內(nèi)。

9.這時(shí)候應(yīng)該label3顯示出數(shù)字,是0,1,2,3這四個(gè)當(dāng)中的其中一個(gè)。

10.將數(shù)字輸入我寫(xiě)的注冊(cè)機(jī),點(diǎn)擊生成最終點(diǎn)擊方案。

11.依照方案點(diǎn)擊相應(yīng)圖片,注冊(cè)成功

三、key源碼

源碼中,我求的是點(diǎn)擊次數(shù)總和最小的方法,因?yàn)槠鋵?shí)有很多組合,只求效率最高的方法,源碼寫(xiě)的比較臃腫,為的是新手好讀懂

1 void CCM002Dlg::OnOK() 2 { 3 // TODO: Add extra validation here 4 5 //CDialog::OnOK(); 6 7 char szKey[1024]={0}; 8 int n = 0; 9 GetDlgItemText(IDC_EDIT1,szKey,1024); 10 if(!strlen(szKey)) 11 { 12 13 MessageBox("請(qǐng)按照【前期步驟】獲取正確數(shù)值后再生成方案!","友情提示"); 14 return; 15 } 16 n = GetDlgItemInt(IDC_EDIT1); 17 18 19 switch(n){ 20 case 1 : 21 n=0x3D; 22 break; 23 case 2 : 24 n=0x34; 25 break; 26 case 3 : 27 n=0xDF; 28 break; 29 30 default : // 可選的 31 n=0x41; 32 } 33 34 35 struct image 36 { 37 char szname[7]; 38 int nNumber ; 39 int nLef; 40 int nRight; 41 }; 42 image aImage[4]={0}; 43 44 sprintf(aImage[0].szname,"人之初"); 45 aImage[0].nNumber = 1; 46 aImage[0].nLef = 0x2; 47 aImage[0].nRight = 0x11; 48 49 sprintf(aImage[1].szname,"性本善"); 50 aImage[1].nNumber = 2; 51 aImage[1].nLef = 0x3; 52 aImage[1].nRight = 0x13; 53 54 sprintf(aImage[2].szname,"性相近"); 55 aImage[2].nNumber = 3; 56 aImage[2].nLef = 0x5; 57 aImage[2].nRight = 0x17; 58 59 sprintf(aImage[3].szname,"習(xí)相遠(yuǎn)"); 60 aImage[3].nNumber = 4; 61 aImage[3].nLef = 0x7; 62 aImage[3].nRight = 0x1B; 63 /************************************************************************/ 64 /* 設(shè)計(jì)原則,選擇出點(diǎn)擊次數(shù)最少的方案 65 /* iR作為大數(shù)數(shù)組下標(biāo),iL作為小數(shù)數(shù)組下標(biāo),j大數(shù)商,k小數(shù)商,求i+j最小值 66 /************************************************************************/ 67 int nRes = 112; 68 int nIL = 0; 69 int nIR = 0; 70 int nJ = 0; 71 int nK =0 ; 72 for (int iL=0;iL<4;iL++) 73 { 74 for (int iR=0;iR < 4;iR++) 75 { 76 77 for (int j=1;j<=14;j++) 78 { 79 for (int k =0;k<=112;k++) 80 { 81 82 if ((aImage[iR].nRight*j + aImage[iL].nLef*k == n) && (nRes> j+k)) 83 { 84 nIL = iL; 85 nIR = iR; 86 nJ = j; 87 nK = k; 88 nRes = j+k ; 89 } 90 91 } 92 } 93 } 94 95 } 96 97 sprintf(szKey,"在“%s”圖片時(shí)左鍵點(diǎn)擊圖片%d次\r\n\r\n在“%s”圖片時(shí)右鍵點(diǎn)擊圖片%d次\r\n\r\n即可注冊(cè)成功!",aImage[nIL].szname,nK,aImage[nIR].szname,nJ); 98 SetDlgItemText(IDC_EDIT2,szKey); 99 100 101 }

?

轉(zhuǎn)載于:https://www.cnblogs.com/nxyz/p/10302123.html

總結(jié)

以上是生活随笔為你收集整理的CM005-逆向分析过程(上篇)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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