史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 多媒體影音轉檔燒錄技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-02-13, 12:28 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 [RSA的另類爆破] RM to AVI MPEG WMV VCD SVCD DVD Converter 2.7

[RSA的另類爆破] RM to AVI MPEG WMV VCD SVCD DVD Converter 2.7

RM to AVI MPEG WMV VCD SVCD DVD Converter 2.7

說明:程序使用RSA加密的,N有82位十六進制,太難分解了,於是想到捏造一個N取代它,
然後逆推註冊碼就完美的爆破它了。
終於在除夕夜完成爆破,以此文辭舊迎新!祝大家春節快樂,身體健康,閤家平安,萬事如意!

1.重啟驗證,註冊後產生一個文件:rmtoall.ini
[Options]
User=cyto
Pass=87654321012345678

2.查殼脫殼:
PEID:ASPack 2.12 -> Alexey Solodovnikov
OD載入:
00595001 r> 60 pushad ; 入口點
00595002 E8 03000000 call rmtoall.0059500A
...
005953AF 61 popad
005953B0 75 08 jnz short rmtoall.005953BA
005953B2 B8 01000000 mov eax,1
005953B7 C2 0C00 retn 0C
005953BA 68 3C4E5000 push rmtoall.00504E3C
005953BF C3 retn
dump,Borland Delphi 6.0 - 7.0
執行ok。

3.註冊碼存在ini文件裡,下斷kernel.GetPrivateProfileStringA
斷下返回,上下翻翻,發現是讀ini文件的內容,比如user,pass:
0050481F mov ecx,up-rmto.005048E4 ; ASCII "User"
00504851 mov ecx,up-rmto.00504904 ; ASCII "Pass"
然後返回到:
00504FC3 |. E8 E8F7FFFF call up-rmto.005047B0 ; 取得ini內容
00504FC8 |. A1 58815000 mov eax,dword ptr ds:[508158]
00504FCD |. 8338 00 cmp dword ptr ds:[eax],0 ; 用戶名是否為空?
00504FD0 |. 0F84 EE000000 je up-rmto.005050C4
00504FD6 |. A1 18825000 mov eax,dword ptr ds:[508218]
00504FDB |. 8338 00 cmp dword ptr ds:[eax],0 ; 註冊碼是否為空?
00504FDE |. 0F84 E0000000 je up-rmto.005050C4
00504FE4 |. B8 60A05000 mov eax,up-rmto.0050A060
00504FE9 |. 8B15 18825000 mov edx,dword ptr ds:[508218] ; up-rmto.00509FA8
00504FEF |. 8B12 mov edx,dword ptr ds:[edx]
00504FF1 |. E8 B2F4EFFF call up-rmto.004044A8
00504FF6 |. BA 44A05000 mov edx,up-rmto.0050A044
00504FFB |. A1 60A05000 mov eax,dword ptr ds:[50A060]
00505000 |. E8 23CBFFFF call up-rmto.00501B28 ; 輸入的註冊碼處理
00505005 |. B8 60A05000 mov eax,up-rmto.0050A060
0050500A |. E8 45F4EFFF call up-rmto.00404454
0050500F |. 8D55 E8 lea edx,dword ptr ss:[ebp-18]
00505012 |. A1 AC815000 mov eax,dword ptr ds:[5081AC]
00505017 |. 8B00 mov eax,dword ptr ds:[eax]
00505019 |. 8B80 50040000 mov eax,dword ptr ds:[eax+450]
0050501F |. E8 8CF5F5FF call up-rmto.004645B0 ; 取字元串A=RSA(E)
00505024 |. 8B45 E8 mov eax,dword ptr ss:[ebp-18] ; E=65537=10001(H)
00505027 |. 8D55 EC lea edx,dword ptr ss:[ebp-14]
0050502A |. E8 B53AF0FF call up-rmto.00408AE4
0050502F |. 8B45 EC mov eax,dword ptr ss:[ebp-14]
00505032 |. BA 48A05000 mov edx,up-rmto.0050A048
00505037 |. E8 E0CEFFFF call up-rmto.00501F1C ; 對E的處理
0050503C |. 8D55 E0 lea edx,dword ptr ss:[ebp-20]
0050503F |. A1 AC815000 mov eax,dword ptr ds:[5081AC]
00505044 |. 8B00 mov eax,dword ptr ds:[eax]
00505046 |. 8B80 54040000 mov eax,dword ptr ds:[eax+454]
0050504C |. E8 5FF5F5FF call up-rmto.004645B0 ;取字元串B=RSA(N)
00505051 |. 8B45 E0 mov eax,dword ptr ss:[ebp-20] ; N
00505054 |. 8D55 E4 lea edx,dword ptr ss:[ebp-1C]
00505057 |. E8 883AF0FF call up-rmto.00408AE4
0050505C |. 8B45 E4 mov eax,dword ptr ss:[ebp-1C]
0050505F |. BA 50A05000 mov edx,up-rmto.0050A050
00505064 |. E8 B3CEFFFF call up-rmto.00501F1C ; 對N的處理
00505069 |. 68 58A05000 push up-rmto.0050A058
0050506E |. 68 58A05000 push up-rmto.0050A058
00505073 |. 68 58A05000 push up-rmto.0050A058
00505078 |. 68 58A05000 push up-rmto.0050A058
0050507D |. 68 60A05000 push up-rmto.0050A060
00505082 |. B9 50A05000 mov ecx,up-rmto.0050A050
00505087 |. BA 48A05000 mov edx,up-rmto.0050A048
0050508C |. A1 44A05000 mov eax,dword ptr ds:[50A044] ; 轉換後的十六進制
00505091 |. E8 EAF2FFFF call up-rmto.00504380 ; RSA加密
00505096 |. A1 18825000 mov eax,dword ptr ds:[508218]
0050509B |. 8B15 60A05000 mov edx,dword ptr ds:[50A060]
005050A1 |. E8 02F4EFFF call up-rmto.004044A8
005050A6 |. B8 48A05000 mov eax,up-rmto.0050A048
005050AB |. E8 E4D0FFFF call up-rmto.00502194
005050B0 |. B8 50A05000 mov eax,up-rmto.0050A050
005050B5 |. E8 DAD0FFFF call up-rmto.00502194
005050BA |. B8 58A05000 mov eax,up-rmto.0050A058
005050BF |. E8 D0D0FFFF call up-rmto.00502194
005050C4 |> A1 58815000 mov eax,dword ptr ds:[508158]
005050C9 |. 8B00 mov eax,dword ptr ds:[eax]
005050CB |. 8B15 18825000 mov edx,dword ptr ds:[508218] ; up-rmto.00509FA8
005050D1 |. 8B12 mov edx,dword ptr ds:[edx]
005050D3 |. E8 88F7EFFF call up-rmto.00404860 ; 比較
005050D8 |. 75 2D jnz short up-rmto.00505107 ; 關鍵跳轉

以上就是註冊碼計算判斷的主線。經過計算後的註冊碼最後與用戶名比較,相等就成功了。

4.從關鍵比較入手,分析比較值與存放位址:
005050C4 |> A1 58815000 mov eax,dword ptr ds:[508158]
005050C9 |. 8B00 mov eax,dword ptr ds:[eax]
005050CB |. 8B15 18825000 mov edx,dword ptr ds:[508218] ; up-rmto.00509FA8
005050D1 |. 8B12 mov edx,dword ptr ds:[edx]
005050D3 |. E8 88F7EFFF call up-rmto.00404860 ; 比較
005050D8 |. 75 2D jnz short up-rmto.00505107 ; 關鍵跳轉

比較的長度:
00404877 |. 8B46 FC mov eax,dword ptr ds:[esi-4] ; 用戶名長度=4
0040487A |. 8B57 FC mov edx,dword ptr ds:[edi-4] ; 計算值長度=26

比較的東西:
00508158 A4 9F 50 00 bP.0
00509FA4 8C 3F EF 00 ??(幫
00EF3F8C 63 79 74 6F cyto

00508218 A8 9F 50 00 沏.皉
00509FA8 28 B0 EF 00 幫..
00EFB028 03 90 19 BD 6A D3 87 3F E4 B3 D9 C9 50 79 9F B8 ?絡訃?涑偕Py熅
00EFB038 11 77 77 C9 E6 C7 8F 56 4B FB 7C 35 2D 62 D5 86 ww涉菑VK鹼5-b諉
00EFB048 6C 8A 10 D9 16 57 l??W..峽?峽?

通過修改ini的註冊碼那如發現:只要註冊碼不變上面比較的位址都是固定的。
如果註冊碼有變的話,存放位址也會跟著變,值也會變,比較的長度也變。

5.定位加密算法
從上面的比較結果可以看出,太像RSA運算了,於是上cryptosearcher 0.97分析,
發現FGIntRSA,搜尋google:
RSA加密一共需要三個單元FGInt, FGIntPrimeGeneration, FGIntRSA:
FGint是一個大型數運算庫;GIntPrimeGeneration是一個找大質數的類庫;FGIntRSA
是實現加密和解密以及驗證的單元。
而且主線對輸入的註冊碼處理後緊接著出現兩個字元串:
65537=10001(H)
6379051052155084038884486217835789151288944321542017547163
9593023445165917945890380913786330112957=1DDD59DD5BE4EB02D560C324464193E0369A5ADAA8776B560E6ECA51F5
50EFD32B3FAE992B478963BD(H)
估計第一個就是RSA的E,第二個應該就是傳說中的N。

6.算法程序分析:
對註冊碼下硬體訪問斷點,分析程序對註冊碼的處理:
從ini中取得註冊碼,存放位址:
00EFB1CC 38 37 36 35 34 33 32 31 30 31 32 33 34 35 36 37 38 87654321012345678

6.1 00505000 call up-rmto.00501B28:對輸入的註冊碼進行處理
首先根據註冊碼的ASCII碼取出表中的值:
00501B99 |> /8D45 F8 /lea eax,dword ptr ss:[ebp-8]
00501B9C |. |8B55 FC |mov edx,dword ptr ss:[ebp-4]
00501B9F |. |0FB65432 FF |movzx edx,byte ptr ds:[edx+esi-1] ;edx=註冊碼ASCII碼
00501BA4 |. |8B9495 F4FBFFFF |mov edx,dword ptr ss:[ebp+edx*4-40C] ;取值,ebp=0012FF4C
00501BAB |. |E8 6C2BF0FF |call up-rmto.0040471C
00501BB0 |. |46 |inc esi
00501BB1 |. |4B |dec ebx
00501BB2 |.^\75 E5 \jnz short up-rmto.00501B99
在00501BA4處先根據順取到的註冊碼ASCII碼計算得到存放表單的位址。

對應關係:
0=110100;1=110101;2=110110;3=110111;4=111000;5=111001;
6=111010;7=111011;8=111100;9=111101。

a=000000 ;b=000010 ;c=000100 ;d=000110 ;e=001000 ;f=001010 ;
g=001100 ;h=001110 ;i=010000 ;j=010010 ;k=010100 ;l=010110 ;
m=011000 ;n=011010 ;o=011100 ;p=011110 ;q=100000 ;r=100010 ;
s=100100 ;t=100110 ;u=101000 ;v=101010 ;w=101100 ;x=101110 ;
y=110000 ;z=110010 。

A=000001 ;B=000011 ;C=000101 ;D=000111 ;E=001001 ;F=001011 ;
G=001101 ;H=001111 ;I=010001 ;J=010011 ;K=010101 ;L=010111 ;
M=011001 ;N=011011 ;O=011101 ;P=011111 ;Q=100001 ;R=100011 ;
S=100101 ;T=100111 ;U=101001 ;V=101011 ;W=101101 ;X=101111 ;
Y=110001 ;Z=110011

註冊碼:87654321012345678;38 37 36 35 34 33 32 31 30 31 32 33 34 35 36 37 38
堆疊 ss:[0012FF44]=00EFAED4, (ASCII "111100 111011 111010 111001
111000 110111 110110 110101 110100 110101 110110 110111 111000 111001 111010 111011 111100")

然後轉換成十六進制:
順取8位轉換成十六進制,最後剩餘的6位不夠就丟棄了:
11110011 10111110 10111001 11100011 01111101 10110101 11010011
01011101 10110111 11100011 10011110 10111011 111100=F3 BE B9 E3 7D B5 D3 5D B7 E3 9E BB
即:1111001110111110101110011110001101111101101101011101001101011
10110110111111000111001111010111011=F3BEB9E37DB5D35DB7E39EBB
在記憶體搜尋到: 00EFAEB8 F3 BE B9 E3 7D B5 D3 5D B7 E3 9E BB

6.2取得RSA的E&N:
0050501F |. E8 8CF5F5FF call up-rmto.004645B0 ; 取字元串A=RSA(E)
00505024 |. 8B45 E8 mov eax,dword ptr ss:[ebp-18] ; E=65537=10001(H)

  00505027 |. 8D55 EC lea edx,dword ptr ss:[ebp-14]
0050502A |. E8 B53AF0FF call up-rmto.00408AE4
0050502F |. 8B45 EC mov eax,dword ptr ss:[ebp-14]
00505032 |. BA 48A05000 mov edx,up-rmto.0050A048
00505037 |. E8 E0CEFFFF call up-rmto.00501F1C ; 對E的處理
0050503C |. 8D55 E0 lea edx,dword ptr ss:[ebp-20]
0050503F |. A1 AC815000 mov eax,dword ptr ds:[5081AC]
00505044 |. 8B00 mov eax,dword ptr ds:[eax]
00505046 |. 8B80 54040000 mov eax,dword ptr ds:[eax+454]
0050504C |. E8 5FF5F5FF call up-rmto.004645B0 ;取字元串B=RSA(N)
00505051 |. 8B45 E0 mov eax,dword ptr ss:[ebp-20] ; N
00505054 |. 8D55 E4 lea edx,dword ptr ss:[ebp-1C]
00505057 |. E8 883AF0FF call up-rmto.00408AE4
0050505C |. 8B45 E4 mov eax,dword ptr ss:[ebp-1C]
0050505F |. BA 50A05000 mov edx,up-rmto.0050A050
00505064 |. E8 B3CEFFFF call up-rmto.00501F1C ; 對N的處理
這兩個計算對應兩個字元串:
E=65537(D)=10001(H)
N=6379051052155084038884486217835789151288944321542017547
1639593023445165917945890380913786330112957(D)=1DDD59DD5BE4EB02D560C324464193E0369A5ADAA8776B560
E6ECA51F550EFD32B3FAE992B478963BD(H)

6.3加密並處理得到最後結果:00505091 call up-rmto.00504380
加密:
M:處理後的註冊碼=F3BEB9E37DB5D35DB7E39EBB(H)
1111001110111110101110011110001101111101101101011101001

10101110110110111111000111001111010111011

E:10001(H)
N:32灌水限制符
6379051052155084038884486217835789151288944321542017547163
9593023445165917945890380913786330112957(D)
1DDD59DD5BE4EB02D560C324464193E0369A5ADAA8776B56
0E6ECA51F550EFD32B3FAE992B478963BD(H)
1110111011101010110011101110101011011111001001110101
1000000101101010101100000110000110010010001000110010
0000110010011111000000011011010011010010110101101101
0101010000111011101101011010101100000111001101110110
0101001010001111101010101000011101111110100110010101
1001111111010111010011001001010110100011110001001011
0001110111101(2)

C=ME(mod N)=F3BEB9E37DB5D35DB7E39EBB^10001(mod 1DDD59DD5BE4EB02D560C324464193E0369A5ADAA8776B
560E6ECA51F550EFD32B3FAE992B478963BD)=ACA353B90
19BD6AD3873FE4B3D9C950799FB8117777C9E
6C78F564BFB7C352D62D5866C8A10D91657

加密後得到密文:ACA353B9019BD6AD3873FE4B3D9C950799FB8117777C
9E6C78F564BFB7C352D62D5866C8A10D91657(H)

密文轉換成2進制:00504654 call up-rmto.00502DCC
00502E00 |. 8945 F8 mov dword ptr ss:[ebp-8],eax
00502E03 |. BF 01000000 mov edi,1
00502E08 |> 33DB /xor ebx,ebx
00502E0A |> 8B45 FC |/mov eax,dword ptr ss:[ebp-4]
00502E0D |. 8B40 04 ||mov eax,dword ptr ds:[eax+4]
00502E10 |. 8B54F8 04 ||mov edx,dword ptr ds:[eax+edi*8+4]
00502E14 |. 8B04F8 ||mov eax,dword ptr ds:[eax+edi*8]
00502E17 |. 8BCB ||mov ecx,ebx
00502E19 |. E8 D626F0FF ||call up-rmto.004054F4
00502E1E |. 81E0 01000000 ||and eax,1
00502E24 |. 33D2 ||xor edx,edx
00502E26 |. 52 ||push edx ; /Arg2 => 00000000
00502E27 |. 50 ||push eax ; |Arg1
00502E28 |. 8D45 F4 ||lea eax,dword ptr ss:[ebp-C] ; |
00502E2B |. E8 A05EF0FF ||call up-rmto.00408CD0 ; \up-rmto.00408CD0
00502E30 |. 8B55 F4 ||mov edx,dword ptr ss:[ebp-C]
00502E33 |. 8B0E ||mov ecx,dword ptr ds:[esi] ;
存於n個位址,最後存於00EF4330&00EFAED4
00502E35 |. 8BC6 ||mov eax,esi
00502E37 |. E8 2419F0FF ||call up-rmto.00404760
00502E3C |. 43 ||inc ebx
00502E3D |. 83FB 1F ||cmp ebx,1F
00502E40 |.^ 75 C8 |\jnz short up-rmto.00502E0A
00502E42 |. 47 |inc edi
00502E43 |. FF4D F8 |dec dword ptr ss:[ebp-8]
00502E46 |.^ 75 C0 \jnz short up-rmto.00502E08
101011001010001101010011101110010000000110011011110101101010110
10011100001110011111111100100101100111101100111001001010100000
11110011001111110111000000100010111011101110111110010011110011
01100011110001111010101100100101111111011011111000011010100101
10101100010110101011000011001101100100010100001000011011001000
1011001010111

2進制裡尋找第一個111,去除前面的數
005046AF |. /EB 12 jmp short up-rmto.005046C3
005046B1 |> |8D45 B0 /lea eax,dword ptr ss:[ebp-50]
005046B4 |. |B9 01000000 |mov ecx,1
005046B9 |. |BA 01000000 |mov edx,1
005046BE |. |E8 F102F0FF |call up-rmto.004049B4 ; 下一位開始
005046C3 |> \8D45 A0 lea eax,dword ptr ss:[ebp-60]
005046C6 |. 50 |push eax
005046C7 |. B9 03000000 |mov ecx,3
005046CC |. BA 01000000 |mov edx,1
005046D1 |. 8B45 B0 |mov eax,dword ptr ss:[ebp-50] ; 初始值為00504654計算的2進制,存在00EFAED4
005046D4 |. E8 9B02F0FF |call up-rmto.00404974 ; 取出3位
005046D9 |. 8B45 A0 |mov eax,dword ptr ss:[ebp-60]
005046DC |. BA 74475000 |mov edx,up-rmto.00504774 ; ASCII "111"
005046E1 |. E8 7A01F0FF |call up-rmto.00404860 ; 比較
005046E6 |. 74 0D |je short up-rmto.005046F5 ; 相等就跳走
005046E8 |. 8B45 B0 |mov eax,dword ptr ss:[ebp-50]
005046EB |. E8 2400F0FF |call up-rmto.00404714
005046F0 |. 83F8 03 |cmp eax,3
005046F3 |.^ 7F BC \jg short up-rmto.005046B1
資料放置的初始位置為00EFAED4,然後轉移到00EF4330,
找第一個111,找到後就跳走,去除其前面的字元。
11101110010000000110011011110101101010110100111000
01110011111111100100101100111101100111001001010100
00011110011001111110111000000100010111011101110111
11001001111001101100011110001111010101100100101111
11101101111100001101010010110101100010110101011000
0110011011001000101000010000110110010001011001010111

又去掉值的前面3位:
005046F5 |> \8D45 B0 lea eax,dword ptr ss:[ebp-50]
005046F8 |. B9 03000000 mov ecx,3
005046FD |. BA 01000000 mov edx,1
00504702 |. E8 AD02F0FF call up-rmto.004049B4 ; 又去掉3位?
0111001000000011001101111010110101011010011100001
1100111111111001001011001111011001110010010101000
0011110011001111110111000000100010111011101110111
1100100111100110110001111000111101010110010010111
1111011011111000011010100101101011000101101010110
000110011011001000101000010000110110010001011001010111

轉換成十六進制:得到最終的結果
00EFB028 03 90 19 BD 6A D3 87 3F E4 B3 D9 C9 50 79 9F B8 ?絡訃?涑偕Py熅
00EFB038 11 77 77 C9 E6 C7 8F 56 4B FB 7C 35 2D 62 D5 86 ww涉菑VK鹼5-b諉
00EFB048 6C 8A 10 D9 16 57 l??W..
即:39019BD6AD3873FE4B3D9C950799FB8117777C9E6C78F564BFB7C352D62D5866C8A10D91657

6.4算法流程:
處理輸入的註冊碼,查表得2進制再轉換成十六進制,加密,然後加密後的資料轉換成2進制,
去除第一個111前面的數,然後再去除前面3位,然後再轉換成十六進制與用戶名比較,相等

就註冊成功。

7.爆破
RSA加密,N太長,無法運算,只好爆破。
爆破之一:啟動程序後判斷註冊碼
005050C4 |> \A1 58815000 mov eax,dword ptr ds:[508158]
005050C9 |. 8B00 mov eax,dword ptr ds:[eax] ; 用戶名
005050CB |. 8B15 18825000 mov edx,dword ptr ds:[508218] ; up-rmto.00509FA8
005050D1 |. 8B12 mov edx,dword ptr ds:[edx] ; 註冊碼
005050D3 |. E8 88F7EFFF call up-rmto.00404860 ; bj
005050D8 75 2D jnz short up-rmto.00505107

005050C4 A1 58815000 mov eax,dword ptr ds:[508158]
改為:
005050C4 A1 18825000 mov eax,dword ptr ds:[508218]

修改後輸入註冊碼用戶名的地方變灰色的。

爆破之二:結束程序判斷
可是結束的時候還是提示:This is a unregistered version。
位址=004FCD98 反彙編=mov edx,up-rmto.004FCDEC
文本字元串=This is a unregistered version, Don't forget to register it.\nTo register software,
please click 'OK' button.

004FCD6F |. A1 A49F5000 mov eax,dword ptr ds:[509FA4]
004FCD74 |. 8B15 A89F5000 mov edx,dword ptr ds:[509FA8]
004FCD7A |. E8 E17AF0FF call up-rmto.00404860
004FCD7F 75 12 jnz short up-rmto.004FCD93
004FCD81 |. 833D A49F5000 00 cmp dword ptr ds:[509FA4],0
004FCD88 |. 74 09 je short up-rmto.004FCD93
004FCD8A |. 833D A89F5000 00 cmp dword ptr ds:[509FA8],0
004FCD91 |. 75 37 jnz short up-rmto.004FCDCA
004FCD93 |> 6A 00 push 0
004FCD95 |. 8D45 FC lea eax,dword ptr ss:[ebp-4]
004FCD98 |. BA ECCD4F00 mov edx,up-rmto.004FCDEC ;
ASCII "This is a unregistered version, Don't forget to register it.
To register software,please click 'OK' button."

004FCD6F |. A1 A49F5000 mov eax,dword ptr ds:[509FA4]
改為:
004FCD6F A1 A89F5000 mov eax,dword ptr ds:[509FA8]

意外發現:爆破之二的比較入棧2個參數又跟爆破之一的不一樣,可能結束的時候算法又
不一樣?還是只是挑取其中的一部分判斷?

爆破之三:
通過了上面兩個爆破後,點擊convert後跳出註冊框。
其中About裡面寫著:Licence to: Unregister
好,先搞定這個:
位址=004FB45D 反彙編=mov edx,baopo.004FB53C 文本字元串=Licence to: Unregister
004FB433 |. A1 58815000 mov eax,dword ptr ds:[508158]
004FB438 |. 8B00 mov eax,dword ptr ds:[eax]
004FB43A |. 8B15 18825000 mov edx,dword ptr ds:[508218] ; baopo.00509FA8
004FB440 |. 8B12 mov edx,dword ptr ds:[edx]
004FB442 |. E8 1994F0FF call baopo.00404860
004FB447 |. 75 14 jnz short baopo.004FB45D
004FB449 |. A1 58815000 mov eax,dword ptr ds:[508158]
004FB44E |. 8338 00 cmp dword ptr ds:[eax],0
004FB451 |. 74 0A je short baopo.004FB45D
004FB453 |. A1 18825000 mov eax,dword ptr ds:[508218]
004FB458 |. 8338 00 cmp dword ptr ds:[eax],0
004FB45B |. 75 12 jnz short baopo.004FB46F
004FB45D |> BA 3CB54F00 mov edx,baopo.004FB53C ; ASCII "Licence to: Unregister"

004FB433 |. A1 58815000 mov eax,dword ptr ds:[508158]
改為:
004FB433 A1 18825000 mov eax,dword ptr ds:[508218]

點擊convert還是跳出要註冊的框,鬱悶!繼續爆!

可疑的串參考:
位址=004CCA03 反彙編=mov eax,baopo.004CCA34 文本字元串=This version of AlphaControls
is trial. For purchase of the fully functional version please come to the http://www.alphaskins.com.
Thanks!
位址=00505251 反彙編=mov eax,baopo.00505520 文本字元串=This software can only try 7 day.

\nPlease registration!
都下斷,不管從啟動到結束,時間調整1年都沒能斷下,看來無關。

看來來硬的不行了,可能暗樁的緣故。

8.修改程序:
因為爆破的話不曉得會不會有暗樁,而且程序本身的N(82位十六進制)實在太大了,很難分解因子,所以想到將N取代掉,利用RSAtool隨機產生長度一樣的N:
P=4D52ECB185B842EC6F55395F3F6B9CE826A7F3043
Q=55E9F05EF5518B1FB4FAEDF2A4B48CF35733455AB
N=19F331AACB6B3741A5ECA989567BFB8BB8573554BD31E8247BFD2196A907C9746820362DD
C44977BC1(H)=5542881362315340009707300372804726818765878439794130883416219724173053461905074953399

4595198139329(D)
D=153C6FE8D58F6828D1205B9D88A8EDB1E9A9747B5BFF968BB520E979F2DE72FB77F7DF3A
968F9CFE1

Winhex開啟脫殼後的程序,然後搜尋:
6379051052155084038884486217835789151288944321542017547163959302344516591794589038091
3786330112957
取代成產生的N=554288136231534000970730037280472681876587843979413088341621972417305346190507495339
94595198139329(D)
好了,這下不用分解大數因子就可以輕鬆搞定加解密。

9.然後逆推註冊碼:
用戶名=otyc=6F747963=1101111011101000111100101100011
加上前面3位數111=1111101111011101000111100101100011=3EF747963
解密3EF747963=16D71276E2E7617551A0251C940897907C38097CED12E6472BBF5568A5308C50AA533165922F269223
其2進制為:(328位,注意前面的0不能省略,關係到下面轉換的問題)
0001011011010111000100100111011011100010111001110
1100001011101010101000110100000001001010001110010
0101000000100010010111100100000111110000111000000
0100101111100111011010001001011100110010001110010
1011101111110101010101101000101001010011000010001
10001010000101010100101001100110001011001011001001000101111001001101001001000100011
328位不能為6整除,只好在後面(因為註冊碼處理是從前面開始處理的,每次取8位,最後面不夠位數的話就放棄)加2個0,使其能被6整除:
000101101101011100010010011101101110001011100111
011000010111010101010001101000000010010100011100
100101000000100010010111100100000111110000111000
000010010111110011101101000100101110011001000111
001010111011111101010101011010001010010100110000
100011000101000010101010010100110011000101100101
100100100010111100100110100100100010001100

分成6位6位的:
000101 101101 011100 010010 011101 101110 001011 100111 011000 010111 010101 010001 101000 000010 010100 011100 100101 000000 100010 010111 100100 000111 110000 111000 000010 010111 110011 101101 000100 101110 011001 000111 001010 111011 111101 010101 011010 001010 010100 110000 100011 000101 000010 101010 010100 110011 000101 100101 100100 100010 111100 100110 100100 100010 001100

逆查表得:
000101 101101 011100 010010 011101 101110 001011 100111 011000 010111 010101 010001 101000 000010
C W o j O x F T m L K I u b
010100 011100 100101 000000 100010 010111 100100 000111 110000 111000 000010 010111 110011 101101
k o S a r L s D y 4 b L Z W
000100 101110 011001 000111 001010 111011 111101 010101 011010 001010 010100 110000 100011 000101
c x M D f 7 9 K n f k y R C
000010 101010 010100 110011 000101 100101 100100 100010 111100 100110 100100 100010 001100
b v k Z C S s r 8 t s r g

整理後:
CWojOxFTmLKIubkoSarLsDy4bLZWcxMDf79KnfkyRCbvkZCSsr8tsrg

用戶名:otyc
註冊碼:CWojOxFTmLKIubkoSarLsDy4bLZWcxMDf79KnfkyRCbvkZCSsr8tsrg
這下輸入用戶名註冊碼的地方變成灰色的,結束的時候不再提示未註冊版本。
理論上講應該是完美爆破。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 01:50 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1