|
发表于 2010-1-24 17:46:09
|显示全部楼层
文章作者】: BeyondMe
【作者邮箱】: futuring@126.com
【作者主页】: http://hi.baidu.com/beyond0769
【软件名称】: 1 Privacy Eraser 2.5
【下载地址】: http://www.1privacy.net/ 或 http://download.cnet.com/1-Priva ... 144_4-10298856.html
【编写语言】: Borland Delphi 6.0 - 7.0 [覆盖]
【软件介绍】: 每当你使用互联网,您的活动记录您自己的电脑程式如Internet Explorer ,Netscape , Firefox和其他许多人。 任何人都可以看到你已经在互联网上的图片,电影,你甚至都没有在您的电脑上会留下痕迹在您的计算机上。利用互联网隐私橡皮擦您可以轻松地保护您的隐私和让您的冲浪私营只需一次点击即可。
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
很久没有写教程了,今天有空就分析了一个非明码算法,想办法推算出真正注册码来。得到真正注册码不难,但写要写清楚整个流程不容易,本文写得比较乱,有兴趣的就凑合着看吧.
没有加壳,OD载入运行,主界面中有注册信息:
机器码:706545925
假码[1]:1234567890ABCDEF
出现错误提示,但用 bp MessageBoxA/W 不能下断,但观察到点注册时,程序假死两秒,估计调用了 Sleep 函数。
这是老外惯用的伎俩,方便我们下断 ^0^ ,于是 bp Sleep 下断成功。来到主算法过程。(当然也可以用 Dede分析得到)
004F808C $ 55 PUSH EBP ; 注册按钮事件开始
004F808D . 8BEC MOV EBP,ESP
004F808F . 83C4 BC ADD ESP,-44
004F8092 . 53 PUSH EBX
004F8093 . 56 PUSH ESI
004F8094 . 57 PUSH EDI
004F8095 . 33DB XOR EBX,EBX
004F8097 . 895D BC MOV DWORD PTR SS:[EBP-44],EBX
004F809A . 895D C0 MOV DWORD PTR SS:[EBP-40],EBX
004F809D . 895D C4 MOV DWORD PTR SS:[EBP-3C],EBX
004F80A0 . 895D C8 MOV DWORD PTR SS:[EBP-38],EBX
004F80A3 . 895D DC MOV DWORD PTR SS:[EBP-24],EBX
004F80A6 . 895D F0 MOV DWORD PTR SS:[EBP-10],EBX
004F80A9 . 895D EC MOV DWORD PTR SS:[EBP-14],EBX
004F80AC . 895D E8 MOV DWORD PTR SS:[EBP-18],EBX
004F80AF . 894D F8 MOV DWORD PTR SS:[EBP-8],ECX
004F80B2 . 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
004F80B5 . 8BD8 MOV EBX,EAX
004F80B7 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004F80BA . E8 55CBF0FF CALL PrivacyE.00404C14
004F80BF . 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
004F80C2 . E8 4DCBF0FF CALL PrivacyE.00404C14
004F80C7 . 8B45 0C MOV EAX,DWORD PTR SS:[EBP+C]
004F80CA . E8 45CBF0FF CALL PrivacyE.00404C14
004F80CF . 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
004F80D2 . E8 3DCBF0FF CALL PrivacyE.00404C14
004F80D7 . 33C0 XOR EAX,EAX
004F80D9 . 55 PUSH EBP
004F80DA . 68 C4834F00 PUSH PrivacyE.004F83C4
004F80DF . 64:FF30 PUSH DWORD PTR FS:[EAX]
004F80E2 . 64:8920 MOV DWORD PTR FS:[EAX],ESP
004F80E5 > E8 7AF0F0FF CALL <JMP.&kernel32.GetTickCount>
004F80EA . 8BF0 MOV ESI,EAX
004F80EC . 68 D0070000 PUSH 7D0
004F80F1 . E8 C26CF1FF CALL <JMP.&kernel32.Sleep> ; 先睡2秒
004F80F6 . 8B43 54 MOV EAX,DWORD PTR DS:[EBX+54]
004F80F9 . 8078 04 00 CMP BYTE PTR DS:[EAX+4],0
004F80FD . 74 0A JE SHORT PrivacyE.004F8109
004F80FF . 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
004F8102 . 8BC3 MOV EAX,EBX
004F8104 . E8 8BFAFFFF CALL PrivacyE.004F7B94
004F8109 > E8 56F0F0FF CALL <JMP.&kernel32.GetTickCount>
004F810E . 81C6 CF070000 ADD ESI,7CF
004F8114 . 3BC6 CMP EAX,ESI
004F8116 .^ 72 CD JB SHORT PrivacyE.004F80E5
004F8118 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 机器码
004F811B . E8 04C9F0FF CALL PrivacyE.00404A24 ; 机器码长度,以下N次调用它
004F8120 . 3B43 58 CMP EAX,DWORD PTR DS:[EBX+58]
004F8123 . 7F 19 JG SHORT PrivacyE.004F813E
004F8125 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004F8128 . E8 F7C8F0FF CALL PrivacyE.00404A24
004F812D . 3B43 5C CMP EAX,DWORD PTR DS:[EBX+5C]
004F8130 . 7C 0C JL SHORT PrivacyE.004F813E
004F8132 . 8B45 0C MOV EAX,DWORD PTR SS:[EBP+C] ; 假码
004F8135 . E8 EAC8F0FF CALL PrivacyE.00404A24 ; 假码长度
004F813A . 85C0 TEST EAX,EAX
004F813C . 75 09 JNZ SHORT PrivacyE.004F8147 ; 不能为0
004F813E > C645 F7 00 MOV BYTE PTR SS:[EBP-9],0
004F8142 . E9 33020000 JMP PrivacyE.004F837A
004F8147 > 8D55 DC LEA EDX,DWORD PTR SS:[EBP-24]
004F814A . 8B45 0C MOV EAX,DWORD PTR SS:[EBP+C]
004F814D . E8 860DF1FF CALL PrivacyE.00408ED8 ; 变大写
004F8152 . 8B55 DC MOV EDX,DWORD PTR SS:[EBP-24]
004F8155 . 8D45 0C LEA EAX,DWORD PTR SS:[EBP+C]
004F8158 . E8 9FC6F0FF CALL PrivacyE.004047FC
004F815D . C645 F7 00 MOV BYTE PTR SS:[EBP-9],0
004F8161 . B1 01 MOV CL,1
004F8163 . 8B55 0C MOV EDX,DWORD PTR SS:[EBP+C]
004F8166 . 8BC3 MOV EAX,EBX
004F8168 . E8 03FBFFFF CALL PrivacyE.004F7C70
004F816D . 84C0 TEST AL,AL
004F816F . 0F85 05020000 JNZ PrivacyE.004F837A
004F8175 . 33C9 XOR ECX,ECX
004F8177 . 55 PUSH EBP
004F8178 . 68 00834F00 PUSH PrivacyE.004F8300
004F817D . 64:FF31 PUSH DWORD PTR FS:[ECX]
004F8180 . 64:8921 MOV DWORD PTR FS:[ECX],ESP
004F8183 . 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
004F8186 . 8B55 0C MOV EDX,DWORD PTR SS:[EBP+C]
004F8189 . 8A52 01 MOV DL,BYTE PTR DS:[EDX+1] ; 假码第2位
004F818C . E8 BBC7F0FF CALL PrivacyE.0040494C
004F8191 . 8D45 D8 LEA EAX,DWORD PTR SS:[EBP-28]
004F8194 . 8B55 0C MOV EDX,DWORD PTR SS:[EBP+C]
004F8197 . 8A52 09 MOV DL,BYTE PTR DS:[EDX+9] ; 假码第10位
004F819A . 8850 01 MOV BYTE PTR DS:[EAX+1],DL
004F819D . C600 01 MOV BYTE PTR DS:[EAX],1 |
|