一些软件的加密狗破解复制解密全程
这是很久以前的软件了,正本破解的时分写下了点东西,今日看到了就顺便把它发上来,由于正本只是做的简略的笔记,今日稍微补偿了点,由于找不到原程序,所以也不是很无缺,期望咱们谅解!下面就直接贴代码了:
0028:CE5AA88588442405 MOV ,AL ; 这儿.
0028:CE5AA88966C746680100 MOV WORD PTR ,0001
0028:CE5AA88F8A442405 MOV AL,
0028:CE5AA893884615 MOV ,AL
0028:CE5AA896884614 MOV ,AL
咱们是在 chat_to_dongle routine. 而且假定咱们看下面的data有些,咱们看到:SENTINELXXX...
这是啥啊?! 你应当知道有啥公司供应这种加狗的效能如: Hasp, Sentinel, DesKEY,
Activator/Unikey 还有许多其它的.
因此,咱们能够揣度碰到的是一个 SENTINEL 狗加密!咱们如今在 SENTINEL.VXD 文件... 回到文章
中来,咱们停在这儿:
0028:CE5AA88588442405 MOV ,AL;这儿..
0028:CE5AA88966C746680100 MOV WORD PTR ,0001
0028:CE5AA88F8A442405 MOV AL,
0028:CE5AA893884615 MOV ,AL
0028:CE5AA896884614 MOV ,AL
咱们要看是对于可实施文件的CALL,所以咱们要按三四次F12,咱们会在这儿:
0028:CE5B35D650 PUSH EAX
0028:CE5B35D755 PUSH EBP
0028:CE5B35D857 PUSH EDI
0028:CE5B35D9E8D2FEFFFF CALL CE5B34B0 ; 咱们的 call :)
0028:CE5B35DEC06C241F01 SHR BYTE PTR ,01;回到这儿.
在 CALL 中:
0028:CE5B35D650 PUSH EAX
0028:CE5B35D755 PUSH EBP
0028:CE5B35D857 PUSH EDI
0028:CE5B35D9E8D2FEFFFF CALL CE5B34B0
0028:CE5B35DEC06C241F01 SHR BYTE PTR ,01
Ok,看看下面的代码并不能帮助咱们啥 :( 我看过几篇对于狗加密的教程.咱们做
的这几步,应当是现已完成了.我想,在CALL后边,会有一个对于狗的 CMP ,假定值是
和狗一样,那么就经过,不然就会加上一个过失的旗标...... 可是,咱们是不走运的,
这儿不是那么简略!的.经过和代码游戏(盯梢call,寻找一些对比的代码),我按许多
次 F12 ,可是找不到一点好东西!
BTW,我无从这该死的Sentinel的VXD中出来!按住 F12,可是啥都没有变!VDX使我
陷入困境了......我期望回到 Acad.exe 文件中!我不期望破解狗硬件,大多数的时分,
狗保护的缺陷一般都是在方针自身!
我试了 BPIO -h 378 R
让咱们在 I/O-port 上试试其它的断点 :
378现已试过了
3BC这个 ;)
278这个也是 ;o)
OK,作业软件,可是却没有阻挠 ;( 我的天啊!
由于它是一个 VDX ,所以我也试了 bpx CreateFileA ,可是走不了多久......
那么,为啥不反汇编它呢?命运好说不定能找到一些在字符串中找到一些对于犯错
的信息(不要做梦了,那是不可能有的!!:p)如今你能用东西中的啤酒了 ;) 由于咱们
要花很长时刻去反汇编!!!! 那就是我为啥不必IDA的缘由了! BTW, 咱们的方针可
实施文件大概是 7.24 mb!好了,如今你知道为啥要花这么多时刻了吧..
喝过酒后,一觉醒来.
经过这么长的时刻,总算反汇编好了! 首要,保存效果!咱们不期望再等那么多时刻,不是
吗?假定你的电脑死机或许其它缘由,你只需再等那么多时刻了!再喝一次酒,呵呵!
完了吗? Ok!
咱们愚笨的主见是去找字符串,命运不佳,没有,其实是意料之中 :p 那么让咱们想想!
咱们如何侵犯它呢? 咱们看看 Import 表吧!看看狗究竟调用了啥函数 :) 咱们能够找
到一个 "l33t0" API 函数!哈哈,我想会有一些好东西了, 咱们来看看内核......
太太太好了 :) 我找到一些诙谐的东西了:
DeviceIoControl
从没有看过,可是称谓,听起来非常好,不是吗?
呵呵!去掉一切的断点只在softice中输入: 'bc *' 和: 'BPX DeviceIocontrol'
如今作业咱们的软件! 哈哈,它阻挠下来了 :) 按F12,咱们跳出了dll文件来到了ACAD.exe
:) 让咱们和代码游玩吧.......
先看代码, 我按F12几回直到在一个好方位.下面是来自我的winice.log 的一有些:
:bl
00) BPX KERNEL32!DeviceIoControl// Damn good :)
Break due to BPX KERNEL32!DeviceIoControl
Break due to BPX KERNEL32!DeviceIoControl
// 你在这能够看到我在找到好地方之前被阻挠下来多少次
// 你用这个 bpx 的时分,你按 F5 3 次,一会有阻挠下来,
// 你再按两次后停在了这儿 :
025F:0098B1AF668B442402 MOV AX, ; EAX = 一些值
025F:0098B1B483C404 ADD ESP,04
025F:0098B1B7C20800 RET 0008
// 经过 RET 后,咱们落在这儿:
025F:006ABE9A0FBFC0 MOVSXEAX,AX; 呵呵 :)
025F:006ABE9D83F8FF CMP EAX,-01; EAX = FFFF ?!
025F:006ABEA07405 JZ 006ABEA7 ; 跳转到 6abea7
025F:006ABEA225FFFF0000 AND EAX,0000FFFF
025F:006ABEA75F &nbs, p;POP EDI
025F:006ABEA8C3 RET ; 回来 ....
// 这是最首要的有些 :
025F:006ABD9483C404 ADD ESP,04
025F:006ABD9785C0 TEST EAX,EAX
025F:006ABD997C36 JL 006ABDD1
025F:006ABD9B8D44240C LEA EAX,
025F:006ABD9F50 PUSH EAX
025F:006ABDA0E8DB000000 CALL 006ABE80
025F:006ABDA583C404 ADD ESP,04
--------------------------- 8< ---------------------- 截取 :p
Ok,我首要想到的是改动:
025F:006ABDCA3DFDDC0000 CMP EAX,0000DCFD ; 是 eax= DCFD ?
025F:006ABDCF7408 JZ 006ABDD9; 好的! 狗锁住了
变成:
025F:006ABDCA3DFDDC0000 CMPEAX,0000DCFD
025F:006ABDCFEB08 JMP006ABDD9 ;不论 EAX 了,我跳 :p
可是,EAX 的值很首要,不然是会溃散的:( 咱们也看到了许多处都调用了 EAX 寄存器
,查看了好几回哦!那么,咱们只需暴力使 EAX 的值等于 DCFD 了!
你还不铲除吗,菜鸟?EAX的值为啥要等于 DCFD?你没看到:CMP EAX,0000DCFD
吗?先在咱们都了解了吧!
咱们到哪去修正方针呢?想想啥时分对 AX 赋值的?我收拾一下内存,收拾出下面这段
代码:
025F:0098B1AF668B442402 MOV AX, ; EAX = 一些值.
025F:0098B1B483C404 ADD ESP,04
025F:0098B1B7C20800 RET 0008
025F:0098B1BA8D9B00000000 LEA EBX,
025F:0098B1C033C0 XOR EAX,EAX
很老的软件了,我想如今网上应当是找不到了,我也没搜到,所以这篇文章有点怪姿态吧,收拾出来也就这姿态了……
你快要被banid了
页:
[1]