首页
社区
课程
招聘
[旧帖] [转帖]软件破解技术 0.00雪花
发表于: 2010-11-15 18:30 1089

[旧帖] [转帖]软件破解技术 0.00雪花

2010-11-15 18:30
1089
写给对软件破解感兴趣的朋友们

导航篇

很高兴大家能支持我的几篇破解手记。我写出来的教程是针对不同的方面,虽然简单,但是有一定的代表性。希望能给大家一定帮助。

菜鸟破解软件手记(一)
http://www.ylmf.net/read.php?tid=1153154

目标:《云南高等植物电子辞典》

简介:
开山之作,呵呵。这个主要是通过字符向上找关键跳,下断点追踪注册码。最基本的方法。适合入门看,毕竟是我第一次写的,所以讲的详细明白。
软件在编写时,代码里已经包含了注册码的信息,简单的说,就是内置了一把锁,当我们输入的字符与软件里包含的信息一致时,就好像我们手中的钥匙对应了软件里的锁,就打开了通向注册成功的大门。我所谓的破解,就是通过反汇编的软件找到软件代码里内置的注册码信息,再拿这个注册码来注册,当然就能成功了。

扩展——常见的明码追踪思路:

法一:
1.OD载入.
2.使用自带的"ULtra字符串参考"插件(一般VB的程序就用UNICODE!非VB的就用ASCII).
3.查找到提示信息双击之,向上看,查找关键CALL,F2下断,F9运行,随意输入注册,程序若被断下,看右边的寄存器窗口.

法二:
1.OD载入.
2.按CTRL+N,找比较函数(譬如C++编写的,找lstrcmpA,VB编写的,找_vbastrcomp).
3.点右键的enter,F2下断,F9运行,随意输入注册,程序若被断下,看右边的寄存器或右下脚的内容.

法三:
1.用W32Dasm(非无极版)载入程序,参考---串式参考,找提示信息,双击来到代码处.
2.向上找关键CALL(一般关键跳上面的一个CALL就是关键CALL),记下前面的代码.
3.OD载入,CTRL+G输入记下代码,F2再F9,随意输入注册,若被断下,看右边.

法四:
1.用W32Dasm(非无极版)载入,点击函数-输入,找比较函数,双击之.
2.调试-加载处理(CTRL+L),直接点载入,W32Dasm停下来,若乱跑,请重头再来.
3.F2下断加亮的那行,前面出现小黄块后按F9,随意输入注册,若被断下,可以看见我们输入的假注册码,向下找真注册码.

菜鸟破解软件手记(二)
http://www.ylmf.net/read.php?tid=1208590

目标:《U盘搬运工》

简介:
当我们找字符不成功的时候不妨试一试直接在常用的模块上下断点,这种方法需要一点耐心,慢慢尝试,当时我好像试了十个左右。

拓展——常见断点设置(后面带星号的为常用的):

字符串
bp GetDlgItemTextA(W) ****
bp GetDlgItemInt
bp GetWindowTextA(W) ****
bp GetWindowWord
bmsg XXXX wm_gettext

对话框
bp MessageBeep
bp MessageBoxA(W) ****
bp MessageBoxExA(W)
bp DialogBoxParamA(W)
bp GreateWindowExA(W)
bp ShowWindow
bp UpdateWindow
bmsg XXXX wm_command
对于VB的程序用bp MessageBoxA是无法断下来的

注册表相关
bp RegCreateKeyA(W)
bp RegDeleteKeyA(W)
bp RegQueryValueA(W)
bp RegCloseKey
bp RegOpenKeyA(W) ****

时间相关
bp GetLocalTime
bp GetFileTime
bp GetSystemtime

CD-ROM或磁盘相关
bp GetFileAttributesA(W)
bp GetFileSize
bp GetDriveType
bp GetLastError
bp ReadFile
bpio -h (CD-ROM端口地址) R

软件狗
bpio -h 278R
bpio -h 378R

INI初始化文件相关
bp GetPrivateProfileStringA ****
bp GetPrivateProfileInt
bp WritePrivateProfileString
bp WritePrivateProfileInt

文件访问相关
bp ReadFile
bp WriteFile
bp CreateFileA ****
bp SetFilePointer
bp GetSystemDirectory

VB程序专用断点:
bpx msvbvm60!rtcMsgBox
bpx msvbvm60!__vbaStrCmp
bpx msvbvm60!__vbaStrComp
bpx msvbvm60!__vbaStrCompVar
bpx msvbvm60!__vbaStrTextCmp
bpx msvbvm60!__vbaFileOpen
bpx msvbvm60!__vbaInputFile
bpx msvbvm60!__vbaFileSeek
bpx msvbvm60!__vbaWriteFile
bpx msvbvm60!__vbaFileClose
bpx msvbvm60!rtcFileAttributes
bpx msvbvm60!rtcFileDateTime
bpx msvbvm60!rtcFileLen
bpx msvbvm60!rtcFileLength
bpx msvbvm60!__vbaVarInt
bpx msvbvm60!__vbaVarCmpGe
bpx msvbvm60!__vbaVarCmpGt
bpx msvbvm60!__vbaVarCmpLe
bpx msvbvm60!__vbaVarCmpLt
bpx msvbvm60!__vbaVarCmpNe
bpx msvbvm60!__vbaVarTextCmpEq
bpx msvbvm60!__vbaVarTextCmpGe
bpx msvbvm60!__vbaVarTextCmpGt
bpx msvbvm60!__vbaVarTextCmpLe
bpx msvbvm60!__vbaVarTextCmpLt
bpx msvbvm60!__vbaVarTextCmpNe
bpx msvbvm60!__vbaVarTextTstEq
bpx msvbvm60!__vbaVarTextTstGe
bpx msvbvm60!__vbaVarTextTstGt
bpx msvbvm60!__vbaVarTextTstLe
bpx msvbvm60!__vbaVarTextTstLt
bpx msvbvm60!__vbaVarTextTstNe
bpx msvbvm60!__vbaVarTstEq
bpx msvbvm60!__vbaVarTstGe
bpx msvbvm60!__vbaVarTstGt
bpx msvbvm60!__vbaVarTstLe
bpx msvbvm60!__vbaVarTstLt
bpx msvbvm60!__vbaVarTstNe
上面的断点对应VB6程序,如果是VB5程序则将msvbvm60改成msvbvm50即可。

菜鸟破解软件手记(三)
http://www.ylmf.net/read.php?tid=1286824

目标:《数字五笔2009》

简介:
这里介绍了另一种思路,不是去追踪,而是爆破。打个比方,注册验证就像一堵墙,追踪是用巧劲绕过去,爆破更直接拆掉了墙。直达注册成功。

什么是爆破?先简单举一个例子。给出这样一个软件的注册验证算法:
1、输入自己获得的注册码(简称输入码)。
2、调用储存在软件中的真正注册码(简称真码),与输入码比较。如果二者相同,即输入的是正确的码,则继续进行下一步。如果二者不同,则跳转到步骤4。
3、显示“注册成功”。结束。
4、显示“注册失败”。结束。

显然,这里的第二步的判断是一个关键。在软件已经写好,我们不能改动各个步骤的顺序的情况下,怎么才能绕过注册验证呢?考虑一下,如果将第二步改为“调用储存在软件中的真正注册码(简称真码),与输入码比较。如果二者不同,即输入的是错误的码,则继续进行下一步。如果二者相同,则跳转到步骤4。”会出现怎样的情况呢?对了,当我们随便输入一个数字时,软件都会提示注册成功。这不就是破解了吗?而像这样通过修改判断的方法就是爆破,简单直接。

拓展——关键语句的意思及其修改
cmp a,b   比较a与b
mov a,b   把b的值送给a
ret   返回主程序
nop   无作用,英文“no operation”的简写,意思是“do nothing”(机器码90)
call   调用子程序
je 或jz   若相等则跳(机器码74 或0F84)
jne或jnz   若不相等则跳(机器码75或0F85)
jmp   无条件跳(机器码EB)
Jb   若小于则跳
ja   若大于则跳
jg   若大于则跳
jge   若大于等于则跳
jl   若小于则跳
jle   若小于等于则跳
pop   出栈
push   压栈

常见修改(机器码)
74=>75 74=>90 74=>EB
75=>74 75=>90 75=>EB
jnz->nop
75->90(相应的机器码修改)
jnz -> jmp
75 -> EB(相应的机器码修改)
jnz -> jz
75->74 (正常) 0F 85 -> 0F 84

菜鸟破解软件手记(四)
http://www.ylmf.net/read.php?tid=1314705

目标:《梦想之巅屏保制作》

简介:
爆破的方法简单易懂,我再用爆破的办法破解一次。这是爆破的延续,但加入了一个过程。VB程序很常见,但字符串中的中文部分都是乱码,很难确定。所以,为大家再介绍一个小软件,对付VB很有效。在这个帖子中,我将使用资源编辑工具把中文乱码修改,使得我们调试的时候能够一眼找到关键地方。

用爆破的方法我修改了两个软件,在软件区有下载。希望大家支持一下。

农产品发票管理系统正式版
http://www.ylmf.net/read.php?tid=1296524

梦想之巅屏保制作 3.0     
http://www.ylmf.net/read.php?tid=1314736 【原文地址】http://bbs.myit189.com/thread-4148-1-1.html

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 129
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不管是不是转帖,只要是我们软件安全相关的文章都要支持的
2010-11-16 11:09
0
雪    币: 23
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
的确够 长的。不过很好
2010-11-16 21:06
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
学习学习
2010-11-17 17:20
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感觉是比较容易理解的教程集合,可以拿来培养兴趣.感谢楼主转贴
2010-11-17 17:24
0
游客
登录 | 注册 方可回帖
返回
//