TA的每日心情 | 无聊 2017-5-31 13:17 |
---|
签到天数: 5 天 [LV.2]偶尔看看I
|
【文章标题】: 某软件爆破及算法不完全分析
【软件名称】: -
【软件大小】: 5M
【下载地址】: 自己搜索下载
【加壳方式】: 无
【保护方式】: -
【编写语言】: Microsoft Visual C++ 5.0
【操作平台】: WIN2003
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
00469B70 > \55 push ebp
.
00469C66 . 8D85 C8FEFFFF lea eax, dword ptr [ebp-138] ; 取机器码
00469C6C . 50 push eax
00469C6D . E8 CC76F9FF call 0040133E ; F7进入算法区
.
.
00469CAC . 8B85 D0FEFFFF mov eax, dword ptr [ebp-130]
00469CB2 . 25 FF000000 and eax, 0FF
00469CB7 . 85C0 test eax, eax
00469CB9 0F84 A1010000 je 00469E60 //爆破点
00469CBF . E8 DEFC0600 call <jmp.&MFC42D.#1087>
00469CC4 . C780 F0000000>mov dword ptr [eax+F0], 0
00469CCE . 8BF4 mov esi, esp
00469CD0 . 8D8D E4FEFFFF lea ecx, dword ptr [ebp-11C]
00469CD6 . 51 push ecx ; /pHandle
00469CD7 . 6A 01 push 1 ; |Access = KEY_QUERY_VALUE
00469CD9 . 6A 00 push 0 ; |Reserved = 0
00469CDB . 68 D0BD5700 push 0057BDD0 ; |software\microsoft\dataaccess\rootbinder\bin
00469CE0 . 68 02000080 push 80000002 ; |hKey = HKEY_LOCAL_MACHINE
00469CE5 . FF15 24B55900 call dword ptr [<&ADVAPI32.RegOpenKey>; \RegOpenKeyExA
00469CEB . 3BF4 cmp esi, esp
算法核心代码:
004BA774 . /EB 09 jmp short 004BA77F
004BA776 > |8B4D E0 mov ecx, dword ptr [ebp-20] ; /////////
004BA779 . |83C1 01 add ecx, 1
004BA77C . |894D E0 mov dword ptr [ebp-20], ecx
004BA77F > \8D4D F0 lea ecx, dword ptr [ebp-10] ; LEA 有效地址传诵指令
004BA782 . E8 07F70100 call <jmp.&MFC42D.#2640>
004BA787 . 3945 E0 cmp dword ptr [ebp-20], eax ; eax为机器码位数8与ebp-20计算,是否还需要计算注册码
004BA78A . 7D 71 jge short 004BA7FD
004BA78C . 8B55 E0 mov edx, dword ptr [ebp-20] ; ebp-20=00000=edx
004BA78F . 52 push edx
004BA790 . 8D4D 0C lea ecx, dword ptr [ebp+C] ; c=0代表是最开始的一位
004BA793 . E8 5AFF0100 call <jmp.&MFC42D.#850>
004BA798 . 8845 EC mov byte ptr [ebp-14], al ; 取机器码第N位+上一注册码的十进制
004BA79B . 8A45 EC mov al, byte ptr [ebp-14]
004BA79E . 0245 E0 add al, byte ptr [ebp-20] ; 相加
004BA7A1 . 8845 EC mov byte ptr [ebp-14], al
004BA7A4 . 0FBE4D EC movsx ecx, byte ptr [ebp-14]
004BA7A8 . 6BC9 07 imul ecx, ecx, 7 ; Q=整数81*7=567 这句是整数相乘 寄存器是为其16进制
004BA7AB . 884D EC mov byte ptr [ebp-14], cl
004BA7AE . 0FBE45 EC movsx eax, byte ptr [ebp-14]
004BA7B2 . 99 cdq ; 双字扩展. (把EAX中的字的符号扩展到EDX中去)
004BA7B3 . B9 0A000000 mov ecx, 0A ; 0A转10进制=10,原ECX=十进制Q(51)*7=587=237(16进制)
004BA7B8 . F7F9 idiv ecx ; 除10
004BA7BA . 52 push edx ; edx值计算出来就是注册码
算法大致分析为:(机器码转十六进制+机器码第几位)*7/0A
希望大牛指点。技术不过关。。。
--------------------------------------------------------------------------------
【版权声明】: 本文原创于飘云阁, 转载请注明作者并保持文章的完整, 谢谢!
2009年02月26日 19:55:55
附件上传不了。传到了QQ中转站
http://62.dc.ftn.qq.com/ftn_hand ... 50f0911464a44564761 提取码 fd2d675a
[ 本帖最后由 cjteam 于 2009-2-26 20:04 编辑 ] |
评分
-
查看全部评分
|