解除VBA
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
密可恢复)(包括工程不可查看)0、打开需要破解的文件1、运行破解2、双击需要破解的文件的工程3、如入无人之境4、取消工程密码保护的钩钩5、保存6、运行恢复即可恢复密码如果工程不可查看请到--审阅---取消共享工作簿即可OptionExplicitPrivateDeclareSubMoveMemoryLib"kernel32"Alias"RtlMoveMemory"_(DestinationAsLong,SourceAsLong,ByValLengthAsLong)PrivateDeclareFunctionVirtualProtectLib"kernel32"(lpAddressAsLong,_ByValdwSizeAsLong,ByValflNewProtectAsLong,lpflOldProtectAsLong)AsLongPrivateDeclareFunctionGetModuleHandleALib"kernel32"(ByVallpModuleNameAsString)AsLongPrivateDeclareFunctionGetProcAddressLib"kernel32"(ByValhModuleAsLong,_ByVallpProcNameAsString)AsLongPrivateDeclareFunctionDialogBoxParamLib"user32"Alias"DialogBoxParamA"(ByValhInstanceAsLong,_ByValpTemplateNameAsLong,ByValhWndParentAsLong,_ByVallpDialogFuncAsLong,ByValdwInitParamAsLong)AsIntegerDimHookBytes(0To5)AsByteDimOriginBytes(0To5)AsByteDimpFuncAsLongDimFlagAsBooleanPrivateFunctionGetPtr(ByValValueAsLong)AsLong'获得函数的地址GetPtr=ValueEndFunctionPublicSubRecoverBytes()'若已经hook,则恢复原API开头的6字节,也就是恢复原来函数的功能IfFlagThenMoveMemoryByValpFunc,ByValVarPtr(OriginBytes(0)),6EndSubPublicFunctionHook()AsBooleanDimTmpBytes(0To5)AsByteDimpAsLongDimOriginProtectAsLongHook=False'VBE6.dll调用DialogBoxParamA显示VB6INTL.dll资源中的第4070号对话框(就是输入密码的窗口)'若DialogBoxParamA返回值非0,则VBE会认为密码正确,所以我们要hookDialogBoxParamA函数pFunc=GetProcAddress(GetModuleHandleA("user32.dll"),"DialogBoxParamA")'
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
apihook过程之一:修改内存属性,使其可写IfVirtualProtect(ByValpFunc,6,&H40,OriginProtect)<>0Then'标准apihook过程之二:判断是否已经hook,看看API的第一个字节是否为&H68,'若是则说明已经HookMoveMemoryByValVarPtr(TmpBytes(0)),ByValpFunc,6IfTmpBytes(0)<>&H68Then'标准apihook过程之三:保存原函数开头字节,这里是6个字节,以备后面恢复MoveMemoryByValVarPtr(OriginBytes(0)),ByValpFunc,6'用AddressOf获取MyDialogBoxParam的地址'因为语法不允许写成p=AddressOfMyDialogBoxParam这,里我们写一个函数'GetPtr,作用仅仅是返回AddressOfMyDialogBoxParam的值,从而实现将'MyDialogBoxParam的地址付给p的目的p=GetPtr(AddressOfMyDialogBoxParam)'标准apihook过程之四:组装API入口的新代码'HookBytes组成如下汇编'pushMyDialogBoxParam的地址'ret'作用是跳转到MyDialogBoxParam函数HookBytes(0)=&H68MoveMemoryByValVarPtr(HookBytes(1)),ByValVarPtr(p),4HookBytes(5)=&HC3'标准apihook过程之五:用HookBytes的内容改写API前6个字节MoveMemoryByValpFunc,ByValVarPtr(HookBytes(0)),6'设置hook成功标志Flag=TrueHook=TrueEndIfEndIfEndFunctionPrivateFunctionMyDialogBoxParam(ByValhInstanceAsLong,_ByValpTemplateNameAsLong,ByValhWndParentAsLong,_ByVallpDialogFuncAsLong,ByValdwInitParamAsLong)AsIntegerIfpTemplateName=4070Then'有程序调用DialogBoxParamA装入4070号对话框,这里我们直接返回1,让'VBE以为密码正确了MyDialogBoxParam=1Else'有程序调用DialogBoxParamA但装入的不是4070号对话框,这里我们调用'RecoverBytes函数恢复原来函数的功能,在进行原来的函数RecoverBytesMyDialogBoxParam=DialogBoxParam(hInstance,pTemplateName,_hWndParent,lpDialogFunc,dwInitParam)'原来的函数执行完毕,再次hookHookEndIfEndFunctionSub破解()IfHookThenMsgBox"破解成功"EndIfEndSubSub恢复()RecoverBytesMsgBox"恢复成功"EndSub