破解 文档资料文档格式.docx

上传人:b****2 文档编号:3181095 上传时间:2023-05-01 格式:DOCX 页数:31 大小:31.25KB
下载 相关 举报
破解 文档资料文档格式.docx_第1页
第1页 / 共31页
破解 文档资料文档格式.docx_第2页
第2页 / 共31页
破解 文档资料文档格式.docx_第3页
第3页 / 共31页
破解 文档资料文档格式.docx_第4页
第4页 / 共31页
破解 文档资料文档格式.docx_第5页
第5页 / 共31页
破解 文档资料文档格式.docx_第6页
第6页 / 共31页
破解 文档资料文档格式.docx_第7页
第7页 / 共31页
破解 文档资料文档格式.docx_第8页
第8页 / 共31页
破解 文档资料文档格式.docx_第9页
第9页 / 共31页
破解 文档资料文档格式.docx_第10页
第10页 / 共31页
破解 文档资料文档格式.docx_第11页
第11页 / 共31页
破解 文档资料文档格式.docx_第12页
第12页 / 共31页
破解 文档资料文档格式.docx_第13页
第13页 / 共31页
破解 文档资料文档格式.docx_第14页
第14页 / 共31页
破解 文档资料文档格式.docx_第15页
第15页 / 共31页
破解 文档资料文档格式.docx_第16页
第16页 / 共31页
破解 文档资料文档格式.docx_第17页
第17页 / 共31页
破解 文档资料文档格式.docx_第18页
第18页 / 共31页
破解 文档资料文档格式.docx_第19页
第19页 / 共31页
破解 文档资料文档格式.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

破解 文档资料文档格式.docx

《破解 文档资料文档格式.docx》由会员分享,可在线阅读,更多相关《破解 文档资料文档格式.docx(31页珍藏版)》请在冰点文库上搜索。

破解 文档资料文档格式.docx

7574=>

9074=>

EB

75=>

7475=>

9075=>

jnz->

nop

75->

90(相应的机器码修改)

jnz->

jmp

75->

EB(相应的机器码修改)

jz

74(正常)0F85->

0F84

两种不同情况的不同修改方法

1.修改为jmp

je(jne,jz,jnz)=>

jmp相应的机器码EB(出错信息向上找到的第一个跳转)jmp的作用是绝对跳,无条件跳,从而跳过下面的出错信息

出错信息,例如:

注册码不对,sorry,未注册版不能...,"

FunctionNotAvaibleinDemo"

或"

CommandNotAvaible"

Can'

tsaveinShareware/Demo"

等(我们希望把它跳过,不让它出现)

2.修改为nop

nop相应的机器码90(正确信息向上找到的第一个跳转)nop的作用是抹掉这个跳转,使这个跳转无效,失去作用,从而使程序顺利来到紧跟其后的正确信息处

正确信息,例如:

注册成功,谢谢您的支持等(我们希望它不被跳过,让它出现,程序一定要顺利来到这里)

出错信息(我们希望不要跳到这里,不让它出现)

爆破口诀

一条(跳)就死,九筒(90)就胡(对应上面的2.修改为nop)

一条(跳)就胡,一饼(EB)伺候(对应上面的1.修改为jmp)

妻死(74)变妻无(75)

爸死(84)变爸无(85)

高人总结的常见的存放注册码的地方。

常见断点设置(后面带"

*"

的为常用的)

字符串

bpGetDlgItemTextA(W)****

bpGetDlgItemInt

bpGetWindowTextA(W)****

bpGetWindowWord

bmsgXXXXwm_gettext

对话框

bpMessageBeep

bpMessageBoxA(W)****

bpMessageBoxExA(W)

bpDialogBoxParamA(W)

bpGreateWindowExA(W)

bpShowWindow

bpUpdateWindow

bmsgXXXXwm_command

对于VB的程序用bpMessageBoxA是无法断下来的,bprtcMsgBox

注册表相关

bpRegCreateKeyA(W)(生成一个key文件)

bpRegDeleteKeyA(W)(删除key文件)

bpRegQueryValueA(W)(队列)

bpRegCloseKey(关闭key文件)

bpRegOpenKeyA(W)****(打开key文件)

时间相关

bpGetLocalTime(本地时间)

bpGetFileTime(获取文件创建的时间)

bpGetSystemtime(获取机器的时间)

CD-ROM或磁盘相关

bpGetFileAttributesA(W)

bpGetFileSize

bpGetDriveType

bpGetLastError

bpReadFile

bpio-h(CD-ROM端口地址)R

软件狗

bpio-h278R

bpio-h378R

INI初始化文件相关

bpGetPrivateProfileStringA****

bpGetPrivateProfileInt

bpWritePrivateProfileString

bpWritePrivateProfileInt

文件访问相关

bpWriteFile

bpCreateFileA****

bpSetFilePointer

bpGetSystemDirectory

VB程序专用断点:

bpxmsvbvm60!

rtcMsgBox

__vbaStrCmp

__vbaStrComp

__vbaStrCompVar

__vbaStrTextCmp

__vbaFileOpen

__vbaInputFile

__vbaFileSeek

__vbaWriteFile

__vbaFileClose

rtcFileAttributes

rtcFileDateTime

rtcFileLen

rtcFileLength

__vbaVarInt

__vbaVarCmpGe

__vbaVarCmpGt

__vbaVarCmpLe

__vbaVarCmpLt

__vbaVarCmpNe

__vbaVarTextCmpEq

__vbaVarTextCmpGe

__vbaVarTextCmpGt

__vbaVarTextCmpLe

__vbaVarTextCmpLt

__vbaVarTextCmpNe

__vbaVarTextTstEq

__vbaVarTextTstGe

__vbaVarTextTstGt

__vbaVarTextTstLe

__vbaVarTextTstLt

__vbaVarTextTstNe

__vbaVarTstEq

__vbaVarTstGe

__vbaVarTstGt

__vbaVarTstLe

__vbaVarTstLt

__vbaVarTstNe

注意:

VB程序仍然可以使用普通API函数,只要函数“最终”CALL了这个函数。

上面的断点对应VB6程序,如果是VB5程序则将msvbvm60改成msvbvm50即可。

F2:

设置断点,只要在光标定位的位置(上图中灰色条)按F2键即可,再按一次F2键则会删除断点。

(相当于SoftICE中的F9)

F8:

单步步过。

每按一次这个键执行一条反汇编窗口中的一条指令,遇到CALL等子程序不进入其代码。

(相当于SoftICE中的F10)

F7:

单步步入。

功能同单步步过(F8)类似,区别是遇到CALL等子程序时会进入其中,进入后首先会停留在子程序的第一条指令上。

(相当于SoftICE中的F8)

F4:

运行到选定位置。

作用就是直接运行到光标所在位置处暂停。

(相当于SoftICE中的F7)

F9:

运行。

按下这个键如果没有设置相应断点的话,被调试的程序将直接开始运行。

(相当于SoftICE中的F5)

CTR+F9:

执行到返回。

此命令在执行到一个ret(返回指令)指令时暂停,常用于从系统领空返回到我们调试的程序领空。

(相当于SoftICE中的F12)

ALT+F9:

执行到用户代码。

可用于从系统领空快速返回到我们调试的程序领空。

(相当于SoftICE中的F11)

Mov装入送入

mova,b;

把b的值赋给a,使a=b

例如,moveax,010h表示,在eax中载入00000010h。

需要注意的是,如果你希望在寄存器中装入0,则有一种更快的方法

例如,xchgebx,ecx,则ebx与ecx的数值将被交换

递增或递减寄存器的值:

我们假定ax的值为8

increg(8,16,32)//incax

decreg(8,16,32)//decax

这两个指令往往用于循环中对指针的操作。

需要说明的是,某些时候我们有更好的方法来处理循环,例如使用loop指令,或rep前缀。

这些将在后面的章节中介绍。

将寄存器的数值与另一寄存器,或立即数的值相加,并存回此寄存器:

addreg32,reg32/imm(8,16,32)

addreg16,reg16/imm(8,16)

addreg8,reg8/imm(8)

例如,addeax,edx,将eax+edx的值存入eax。

减法指令和加法类似,只是将add换成subeax,edx。

Add########两数相加

Sub########两数相减

类似的指令还有and、or、xor(与,或,异或)等等。

它们进行的是逻辑运算。

我们称add、mov、sub、and等称为为指令助记符(这么叫是因为它比机器语言容易记忆,而起作用就是方便人记忆,某些资料中也称为指令、操作码、opcode[operationcode]等);

后面的参数成为操作数,一个指令可以没有操作数,也可以有一两个操作数,通常有一个操作数的指令,这个操作数就是它的操作对象;

而两个参数的指令,前一个操作数一般是保存操作结果的地方,而后一个是附加的参数

   CMPAX,BX//AX寄存器减去BX寄存器的内容

    ANDAX,BX//AX与BX做“与运算”

    ORAX,BX//AX与BX做“或运算”

    TESTAX,BX与ANDAX,BX命令有相同效果

    XORAX,AX使AX的内容清零,每个寄存器与自己作异或运算等于清零动作

算术运算

-------------------------------------------------------------

    ADDAX,BX 加法运算  AX=AX+BX

    SUBAX,BX 减法运算  AX=AX-BX

    INCAX   寄存器加一 AX=AX+1

    DECAX   寄存器减一 AX=AX-1

    MUL    乘法运算

    DIV/idiv    除法运算

数据操作

    MOVAX,BX数据传送指令,将BX的值移送到AX中

    XCHGAX,BX将AX与BX的值互换

8086/8088指令集

为了便于查询,这里分类列出8086/8088汇编指令:

数据传送指令

MOV

功能:

把源操作数送给目的操作数

语法:

MOV目的操作数,源操作数

格式:

MOVr1,r2或MOVr,m或MOVm,r或MOVr,data

XCHG

交换两个操作数的数据

XCHG

XCHGr1,r2或XCHGm,r或XCHGr,m

PUSH,POP

把操作数压入或取出堆栈

PUSH操作数POP操作数

PUSHr或PUSHM或PUSHdataPOPr或POPm

PUSHF,POPF,PUSHA,POPA//PUSHFDPOPFDPUSHADPOPAD

堆栈指令群

PUSHFPOPFPUSHAPOPA

LEA,LDS,LES

取地址至寄存器

LEAr,mLDSr,mLESr,m

XLAT(XLATB)

查表指令

XLATXLATm

算术运算指令

ADD,ADC

加法指令

ADDOP1,OP2ADCOP1,OP2

ADDr1,r2ADDr,mADDm,rADDr,data

影响标志:

C,P,A,Z,S,O

SUB,SBB

减法指令

SUBOP1,OP2SBBOP1,OP2

SUBr1,r2SUBr,mSUBm,rSUBr,dataSUBm,data

INC,DEC

把OP的值加一或减一

INCOPDECOP

INCr/mDECr/m

P,A,Z,S,O

NEG

将OP的符号反相(取二进制补码)

NEGOP

NEGr/m

MUL,IMUL

乘法指令

MULOPIMULOP

MULr/mIMULr/m

C,P,A,Z,S,O(仅IMUL会影响S标志)

DIV,IDIV

除法指令

DIVOPIDIVOP

DIVr/mIDIVr/m

CBW,CWD//changebyteword//changeworddword

有符号数扩展指令

CBWCWD

AAA,AAS,AAM,AAD

非压BCD码运算调整指令

AAAAASAAMAAD

A,C(AAA,AAS)S,Z,P(AAM,AAD)

DAA,DAS

压缩BCD码调整指令

DAADAS

C,P,A,Z,S

字符串操作指令

MOVSB,MOVSW,MOVSD

字符串传送指令

MOVSBMOVSWMOVSD

标志位:

CMPSB,CMPSW,CMPSD

字符串比较指令

CMPSBCMPSWCMPSD

C,P,Z,S,O

SCASB,SCASW//scansb

字符串搜索指令

SCASBSCASW

LODSB,LODSW,STOSB,STOSW

字符串载入或存贮指令

LODSBLODSWSTOSBSTOSW

REP,REPE,REPNE

重复前缀指令集

REP指令SREPE指令SREPNE指令S

依指令S而定

位运算指令集

AND,OR,XOR,NOT,TEST

执行BIT与BIT之间的逻辑运算

ANDr/m,r/m/dataORr/m,r/m/dataXORr/m,r/m/dataTESTr/m,r/m/dataNOTr/m

C,O,P,Z,S(其中C与O两个标志会被设为0)NOT指令不影响任何标志位

SHR,SHL,SAR,SAL

移位指令

SHRr/m,data/CLSHLr/m,data/CLSARr/m,data/CLSALr/m,data/CL

ROR,ROL,RCR,RCL

循环移位指令

RORr/m,data/CLROLr/m,data/CLRCRr/m,data/CLRCLr/m,data/CL

程序流程控制指令

CLC,STC,CMC

设定进位标志

CLCSTCCMC

C

CLD,STD

设定方向标志

CLDSTD

D

CLI,STI

设定中断标志

CLISTI

I

CMP

比较OP1与OP2的值

CMPr/m,r/m/data

C,P,A,Z,O

JMP

跳往指定地址执行

JMP地址

JXX

当特定条件成立则跳往指定地址执行

JXX地址

XX为下列值:

A:

ABOVE,当C=0,Z=0时成立

B:

BELOW,当C=1时成立

C:

CARRY,当CF=1时成立

CXZ:

CX寄存器的值为0(ZERO)时成立

E:

EQUAL,当Z=1时成立

G:

GREATER(大于),当Z=0且S=0时成立

L:

LESS(小于),当S不为零时成立

N:

NOT(相反条件),需和其它符号配合使用

O:

OVERFLOW,O=1时成立

P:

PARITY,P=1时成立

PE:

PARITYEVEN,P=1时成立

PO:

PARITYODD,P=0时成立

S:

SIGN,S=1时成立

Z:

ZERO,Z=1时成立

LOOP

循环指令集

LOOP地址

LOOPE(Z)

格式:

LOOPNE(Z)地址

CALL,RET

子程序调用,返回指令

CALL地址RETRETn

INT,IRET

中断调用及返回指令

INTnIRET

在执行INT时,CPU会自动将标志寄存器的值入栈,在执行IRET时则会将堆栈中的标志值弹回寄存器

处理器状态控制指令

NOP

空操作指令。

不执行任何操作,但要花费CPU一个机器周期

NOP

HLT

暂停指令。

CPU不执行任何操作,一直处于暂停状态,但IP指向HLT的下一条指令。

HLT

脱离HLT状态的方式:

1、CPU复位;

2、CPU响应中断

ESC,WAIT,LOCK

用于多处理器系统。

其中ESC是交权指令;

WAIT是等待指令;

LOCK是总线封锁指令

重启验证类软件大致的验证过程。

1、运行软件输入注册信息,点注册后。

一般软件会提示你重新运行软件,以便验证注册信息的正确性(如FlashGet);

也有的只在你输入正确的注册信息时才有这个提示,不然会告诉你输入的注册信息有问题(此软件就属这类)

2、要破解这种软件,首先是判断一下她把注册信息存在哪里(因为她重启验证时要用)。

大致有两种存放方式,第一种是放在注册表里;

第二种是放在文件里。

(我们可以在输入注册信息,点击确定前,利用监视类软件来查看一下,如FileMon和RegShot等)

3、知道她的注册信息的存放地点后,就可以选则相应的API断点,来调试了

访问注册表类常用API

bpRegOpenKeyA打开一个现有的注册表项****

bpRegOpenKeyExA打开一个现有的注册表项****

bpRegCreateKeyA在指定的项下创建或打开一个项

bpRegCreateKeyExA在指定项下创建新项的更复杂的方式

bpRegDeleteKeyA删除现有项下方一个指定的子项

bpRegDeleteValueA删除指定项下方的一个值

bpRegQueryValueA获取一个项的设置值

bpRegQueryValueExA获取一个项的设置值

bpRegSetValueA设置指定项或子项的值

bpRegSetValueExA设置指定项的值

bpRegCloseKey关闭系统注册表中的一个项(或键)

访问文件类常用API

bpCreateFileA打开和创建文件、管道、邮槽、通信服务、设备以及控制台****

bpOpenFile这个函数能执行大量不同的文件操作

bpReadFile从文件中读出数据

bpReadFileEx与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调、

浮点运算:

fmul相乘

Fadd相加

Fstp保存

Fstswax清零

VB程序的常见函数

1)数据类型转换:

a)__vbaI2Str将一个字符串转为8位(1个字节)的数值形式(范围在0至255之间)或2个字节的数值形式(范围在-32,768到32,767之间)。

b)__vbaI4Str将一个字符串转为长整型(4个字节)的数值形式(范围从-2,147,483,6482,147,483,647)

c)__vbar4Str将一个字符串转为单精度单精度浮点型(4个字节)的数值形式

d)__vbar8Str将一个字符串转为双精度单精度浮点型(8个字节)的数值形式

e)VarCyFromStr(仅VB6库.要调试,则在WINICE.DAT里必须有OLEAUT32.DLL)字符串到变比型数据类型

f)VarBstrFromI2(仅VB6库.要调试,则在WINICE.DAT里必须有OLEAUT32.DLL)整型数据到字符串:

2)数据移动:

a)__vbaStrCopy将一个字符串拷贝到内存,类似于WindowsAPIHMEMCPY

b)__vbaVarCopy将一个变量值串拷贝到内存

c)__vbaVarMove变量在内存中移动,或将一个变量值串拷贝到内存

3)数学运算:

a)__v

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2