吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 21829|回复: 63
收起左侧

[原创] 内存监视器的算法分析

  [复制链接]
cu629944 发表于 2011-5-13 16:19
本帖最后由 cu629944 于 2014-8-6 11:51 编辑

【文章标题】: 内存监视器的算法分析
【软件名称】: 内存注册机
【下载地址】: 自己搜索下载
【加壳方式】: 变形UPX
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  实现说一下,我家的金山报毒,我的AVAST不报毒,你们要是不放心可以不下,不过在我破解的过程中分析了一下,没有毒
  是误报,如果不信,信杀软,请不用下载。

  闲着无聊,来分析一个内存监视工具的算法,这个工具对些外挂的人是很有帮助的哦~怎么使用,大家应该都会吧~HOHO~
  如果写了一个炫舞的外挂就借我用用~我对外挂就是一个白痴~呵呵~

  查一下壳,是UPX的,应该是变形壳,脱壳机搞不定~呵呵,所以我们就用ESP定律来手动脱衣下壳~

  脱壳后,不能运行,所以我们要修复一下IAT~可以运行,运行后,提示程序非法修改,说明程序有自校验,我们OD载入,

  搜索“程序被非法修改”,找到后双击进入

  00408821    83C4 04         add     esp, 4
  00408824    837D F8 00      cmp     dword ptr [ebp-8], 0
  00408828    0F85 63000000   jnz     00408891
  0040882E    68 04000080     push    80000004
  00408833    6A 00           push    0
  00408835    68 6D824900     push    0049826D                         ; 注意
  0040883A    68 01030080     push    80000301
  0040883F    6A 00           push    0
  00408841    68 30100000     push    1030
  00408846    68 04000080     push    80000004
  0040884B    6A 00           push    0
  0040884D    68 72824900     push    00498272                         ; 程序被非法修改 请重新下载!
  00408852    68 03000000     push    3
  00408857    BB C0004100     mov     ebx, 004100C0

  找到关键跳转JNZ,我们将它改为JE,然后右键==》保存为可执行文件,然后再OD载入,F9运行程序

  搜索ascii码~,发现关键句,注册成功,我们双击进入,向上面发,发现没什么,所以就不再段首下断了

  0040B79F    E8 A163FFFF     call    00401B45
  0040B7A4    8945 F4         mov     dword ptr [ebp-C], eax
  0040B7A7    8B45 F4         mov     eax, dword ptr [ebp-C]
  0040B7AA    50              push    eax
  0040B7AB    8B5D FC         mov     ebx, dword ptr [ebp-4]
  0040B7AE    85DB            test    ebx, ebx
  0040B7B0    74 09           je      short 0040B7BB
  0040B7B2    53              push    ebx
  0040B7B3    E8 372B0000     call    0040E2EF
  0040B7B8    83C4 04         add     esp, 4
  0040B7BB    58              pop     eax
  0040B7BC    8945 FC         mov     dword ptr [ebp-4], eax
  0040B7BF    6A 01           push    1
  0040B7C1    B8 69804900     mov     eax, 00498069                    ; 据分析及价格很高45333

  我们在0040B79F下F2断点,输入注册信息“1234567890”,点击注册,程序断下后,F8跟踪,断下后,在
  EAX寄存器,发现开始取我们的机器码“2141939516”,继续F8

  0040B7B2    53              push    ebx
  0040B7B3    E8 372B0000     call    0040E2EF
  0040B7B8    83C4 04         add     esp, 4
  0040B7BB    58              pop     eax
  0040B7BC    8945 FC         mov     dword ptr [ebp-4], eax
  0040B7BF    6A 01           push    1
  0040B7C1    B8 69804900     mov     eax, 00498069                    ; 据分析及价格很高45333
  0040B7C6    8945 F4         mov     dword ptr [ebp-C], eax
  0040B7C9    8D45 F4         lea     eax, dword ptr [ebp-C]
  0040B7CC    50              push    eax
  0040B7CD    8D45 FC         lea     eax, dword ptr [ebp-4]
  0040B7D0    50              push    eax
  0040B7D1    E8 1A6AFFFF     call    004021F0
  0040B7D6    8945 F0         mov     dword ptr [ebp-10], eax

  当到0040B7C1时,发现注释有一个不知道什么意思的字符串,需要小心一下~

  继续F8单步,当到达0040B7D1的时候,发现到达算法CALL,我们F7进入

  00402214    BB 50F54000     mov     ebx, 0040F550
  00402219    E8 EFC00000     call    0040E30D
  0040221E    83C4 10         add     esp, 10
  00402221    8945 FC         mov     dword ptr [ebp-4], eax
  00402224    8D45 FC         lea     eax, dword ptr [ebp-4]
  00402227    50              push    eax
  00402228    E8 14020000     call    00402441
  0040222D    8945 F8         mov     dword ptr [ebp-8], eax
  00402230    8B5D FC         mov     ebx, dword ptr [ebp-4]
  00402233    85DB            test    ebx, ebx
  00402235    74 09           je      short 00402240
  00402237    53              push    ebx
  00402238    E8 B2C00000     call    0040E2EF

  当到达0040222D的时候,在EAX出现了一个字节集eax=00167060, (ASCII "{190,221,183,214,206,
  246,188,176,188,219,184,241,186,220,184,223,52,53,51,51,51}")
  堆栈 ss:[0012F1C0]=7FAB673C

  这是什么东西呢?不知道,我突然想,是不是和刚才的那个不明所以的字符串有关系?我立即运行

  破解计算器,将“据分析及价格很高45333”,转为字节集的时候,发现和这个字节集一模一样,所
  以,我假设它为密钥

  明白之后,继续F8单步走~

  00402298   /75 05           jnz     short 0040229F
  0040229A   |B8 10804900     mov     eax, 00498010
  0040229F   \50              push    eax
  004022A0    68 06000000     push    6
  004022A5    BB D0F14000     mov     ebx, 0040F1D0
  004022AA    E8 5EC00000     call    0040E30D
  004022AF    83C4 4C         add     esp, 4C
  004022B2    8945 FC         mov     dword ptr [ebp-4], eax
  004022B5    8B45 FC         mov     eax, dword ptr [ebp-4]

  当走过004022AA的时候,字节集的逗号全部去掉了~

  004022F7   /75 05           jnz     short 004022FE
  004022F9   |B8 10804900     mov     eax, 00498010
  004022FE   \50              push    eax
  004022FF    68 03000000     push    3
  00402304    BB C0E94000     mov     ebx, 0040E9C0
  00402309    E8 FFBF0000     call    0040E30D
  0040230E    83C4 28         add     esp, 28
  00402311    8945 FC         mov     dword ptr [ebp-4], eax
  00402314    8B45 FC         mov     eax, dword ptr [ebp-4]

  当走过00402309的时候,在EAX的寄存器上出现了字符串


  EAX 0015F6F8 ASCII "9022118321420624618817618"

  经过分析,发现和上面的字节集,从第三位开始取,到第27是相同的,继续单步跟踪

  0040231F   /74 09           je      short 0040232A
  00402321   |53              push    ebx
  00402322   |E8 C8BF0000     call    0040E2EF
  00402327   |83C4 04         add     esp, 4
  0040232A   \58              pop     eax
  0040232B    8B5D 0C         mov     ebx, dword ptr [ebp+C]
  0040232E    8903            mov     dword ptr [ebx], eax
  00402330    FF75 08         push    dword ptr [ebp+8]
  00402333    E8 19030000     call    00402651
  00402338    8945 FC         mov     dword ptr [ebp-4], eax

  当走到00402338的时候,发现取反机器码

  00402333    E8 19030000     call    00402651
  00402338    8945 FC         mov     dword ptr [ebp-4], eax
  0040233B    FF75 FC         push    dword ptr [ebp-4]
  0040233E    8B5D 0C         mov     ebx, dword ptr [ebp+C]
  00402341    FF33            push    dword ptr [ebx]
  00402343    8B5D 08         mov     ebx, dword ptr [ebp+8]
  00402346    FF33            push    dword ptr [ebx]
  00402348    B9 03000000     mov     ecx, 3
  0040234D    E8 3EF1FFFF     call    00401490
  00402352    83C4 0C         add     esp, 0C

  当走到00402352的时候,EAX出现了取反机器码+取前27位的密钥+正的机器码

  00402384    C745 FC 0000000>mov     dword ptr [ebp-4], 0
  0040238B    6A 00           push    0
  0040238D    FF75 FC         push    dword ptr [ebp-4]
  00402390    FF75 0C         push    dword ptr [ebp+C]
  00402393    E8 18060000     call    004029B0
  00402398    8945 F8         mov     dword ptr [ebp-8], eax
  0040239B    8B45 F8         mov     eax, dword ptr [ebp-8]

  当到004502398的时候,我们发现EAX取了一个MD5加密的字符串

  eax=0017B9F0, (ASCII "7eb7e433ad0ff4ec58a474327ea5922c")
  堆栈 ss:[0012F1C0]=00165E90, (ASCII "214193951690221183214206246188176186159391412")

  说明利用了MD5加密,就是md5(取反机器码+密钥+机器码)

  004023C5   /75 05           jnz     short 004023CC
  004023C7   |B8 10804900     mov     eax, 00498010
  004023CC   \50              push    eax
  004023CD    68 01000000     push    1
  004023D2    BB 20ED4000     mov     ebx, 0040ED20
  004023D7    E8 31BF0000     call    0040E30D
  004023DC    83C4 10         add     esp, 10

  此时在EAX的寄存器出现了大写的MD5加密

  00402406   /75 05           jnz     short 0040240D
  00402408   |B8 10804900     mov     eax, 00498010
  0040240D   \50              push    eax
  0040240E    68 03000000     push    3
  00402413    BB C0E94000     mov     ebx, 0040E9C0
  00402418    E8 F0BE0000     call    0040E30D
  0040241D    83C4 28         add     esp, 28

  当到0040241D的时候,在EAX上出现了一个去掉前两位的MD5加密的大写字符串

  EAX 0015F6F8 ASCII "B7E433AD0FF4EC58A474327EA"

  继续跟踪就出了算法CALL到达比较的地方了~

  所以这个算法就是MD5加密取反机器码+密钥+机器码,再去掉前两位,取第三位到第27位,便是我们的注册码了

  此时写注册机~呵呵~注册机和软件都给大家打包了~

--------------------------------------------------------------------------------
【经验总结】
  算法就是MD5加密取反机器码+密钥+机器码,再去掉前两位,取第三位到第27位,便是我们的注册码了,比较简单

--------------------------------------------------------------------------------
【版权声明】: 本文原创于Nisycc, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2011年05月13日 16:07:32

注册机.rar

255.41 KB, 下载次数: 315, 下载积分: 吾爱币 -1 CB

写了注册机,卖一下撒~嘿嘿

内存监视工具.rar

437.09 KB, 下载次数: 478, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 6热心值 +6 收起 理由
173300686 + 1 感谢您的分析,[吾爱破解]有你更精彩!
明次 + 1 详细
yAYa + 1 很详细的分析,支持一下
Emil + 1 我去帮你带人来哦 哈哈
zone0826 + 1 不支持不行啦
missviola + 1 感谢您的分析,[吾爱破解]有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

吾爱丶破解 发表于 2011-5-13 16:29
呵呵破文写的不错支持一下了
 楼主| cu629944 发表于 2011-5-13 16:20
老规矩,沙发自己的,你们别跟我抢哈~吼吼~

点评

如果希望重复练习破解过程,还原未注册状态,请删除C盘WINDOWS目录下的SFSOFT.INI文件即可  发表于 2011-5-14 18:37
Illidan_Stor 发表于 2011-5-13 16:57
ximo 发表于 2011-5-13 18:48
现在很少有人写算法分析了…

点评

超哥,为啥没人写算法分析了捏~  发表于 2011-5-13 18:52
nic 发表于 2011-5-14 13:07
不错支持一下了
zone0826 发表于 2011-5-14 18:03
支持啊,你是从哪里来的大内密探……呵呵呵。东西直接拿走,前排支持。
lcylcyll 发表于 2011-5-14 19:07
这一个可是要支持的啊现在只会一些最简单的爆破
不过真的不会汇编真的不行的啊
Emil 发表于 2011-5-14 19:17
  我来定一个了 不厚道啊 发帖了都不说一句
0xdeath 发表于 2011-5-14 19:25
我来看看怎么样·········
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 03:16

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表