- UID
- 79353
注册时间2014-11-5
阅读权限30
最后登录1970-1-1
龙战于野
TA的每日心情 | 怒 2016-12-29 21:52 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
首先让大家看看关于软件介绍,大家度娘应该可以找到:
创新声卡KX音效精灵是一款专门用于帮助大家调节创新声卡音效的工具。KX驱动的调试和运用对于新手来说比较复杂,河源小编推荐这款创新声卡KX音效精灵,它可帮助用户了解声卡,调试声卡驱动,想要最好的音效效果,那就选KX音效精灵吧。
这款软件为明码比较的很间单,如何让软件自己显示注册码,我的办法很间单,直接把注册错误提示框中的错提示字串的地址换成真注册码存放的地址,
这样,出错就有真码出现了.但我此次HOOK的地方并非在注册框时,因为此软件在注册时只是记录我们输入注册码并不检验.它属于重启验证.因此要先注册后再使用补丁.我的补丁是Load型补丁.
- ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- ; Sample code for < Win32ASM Programming 3rd Edition>
- ; by 罗云彬, http://www.win32asm.com.cn
- ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- ; Patch2.asm
- ; 使用断点和单步跟踪跳过 Test.exe 上的压缩外壳代码,再进行内存补丁
- ; 的例子程序
- ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- ; 使用 nmake 或下列命令进行编译和链接:
- ; ml /c /coff Patch2.asm
- ; rc Patch2.rc
- ; Link /subsystem:windows Patch2.obj Patch2.res
- ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- .586
- .model flat, stdcall
- option casemap :none
- ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- ; Include
- ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- include windows.inc
- include user32.inc
- include kernel32.inc
- includelib user32.lib
- includelib kernel32.lib
- ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- BREAK_POINT1 equ 00405120h
- BREAK_POINT2 equ 00401000h
- PATCH_POSITION equ 00401004h
- ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- ; 数据段
- ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- .data?
- align dword
- stCT CONTEXT <?>
- stDE DEBUG_EVENT <?>
- stStartUp STARTUPINFO <>
- stProcInfo PROCESS_INFORMATION <>
- szBuffer db 1024 dup (?)
- .const
- dbPatched db 90h,90h
- dbInt3 db 0cch
- dbOldByte db 60h
- szExecFilename db 'Test.exe',0
- szErrExec db '无法装载执行文件!',0
- ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- ; 代码段
- ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- .code
- Start:
- ;********************************************************************
- ; 创建进程
- ;********************************************************************
- invoke GetStartupInfo,addr stStartUp
- invoke CreateProcess,offset szExecFilename,NULL,NULL,NULL,NULL,\
- DEBUG_PROCESS or DEBUG_ONLY_THIS_PROCESS,NULL,NULL,\
- offset stStartUp,offset stProcInfo
- .if !eax
- invoke MessageBox,NULL,addr szErrExec,NULL,MB_OK or MB_ICONSTOP
- invoke ExitProcess,NULL
- .endif
- ;********************************************************************
- ; 调试进程
- ;********************************************************************
- .while TRUE
- invoke WaitForDebugEvent,addr stDE,INFINITE
- .break .if stDE.dwDebugEventCode == EXIT_PROCESS_DEBUG_EVENT
- ;********************************************************************
- ; 如果进程开始,则将入口地址处的代码改为 int 3 断点中断
- ;********************************************************************
- .if stDE.dwDebugEventCode == CREATE_PROCESS_DEBUG_EVENT
- invoke WriteProcessMemory,stProcInfo.hProcess,\
- BREAK_POINT1,addr dbInt3,1,NULL
- ;********************************************************************
- ; 如果发生断点中断,则恢复断点处代码并设置单步中断
- ;********************************************************************
- .elseif stDE.dwDebugEventCode == EXCEPTION_DEBUG_EVENT
- .if stDE.u.Exception.pExceptionRecord.ExceptionCode == EXCEPTION_BREAKPOINT
- mov stCT.ContextFlags,CONTEXT_FULL
- invoke GetThreadContext,stProcInfo.hThread,addr stCT
- .if stCT.regEip == BREAK_POINT1 + 1
- dec stCT.regEip
- invoke WriteProcessMemory,stProcInfo.hProcess,\
- BREAK_POINT1,addr dbOldByte,1,NULL
- or stCT.regFlag,100h
- invoke SetThreadContext,stProcInfo.hThread,addr stCT
- .endif
- ;********************************************************************
- ; 如果单步中断到了指定位置,则进行内存补丁
- ;********************************************************************
- .elseif stDE.u.Exception.pExceptionRecord.ExceptionCode == EXCEPTION_SINGLE_STEP
- mov stCT.ContextFlags,CONTEXT_FULL
- invoke GetThreadContext,stProcInfo.hThread,addr stCT
- .if stCT.regEip == BREAK_POINT2
- invoke WriteProcessMemory,stProcInfo.hProcess,\
- PATCH_POSITION,addr dbPatched,sizeof dbPatched,NULL
- .else
- or stCT.regFlag,100h
- invoke SetThreadContext,stProcInfo.hThread,addr stCT
- .endif
- .endif
- .endif
- invoke ContinueDebugEvent,stDE.dwProcessId,stDE.dwThreadId,DBG_CONTINUE
- .endw
- invoke CloseHandle,stProcInfo.hProcess
- invoke CloseHandle,stProcInfo.hThread
- invoke ExitProcess,NULL
- ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- end Start
复制代码
大家只要修改一下要HOOK的地址及代码就OK,改成下面一样就好了.
00404555 FF7424 20 push dword ptr ss:[esp+0x20] ; 你的软件没有注册\r\n\r\n 请找软件作者免费索取注册码\r\n\r\n 单击 是 注册或索取注册码
本来不想上传补丁,因为360会报毒,但为了一些和我怕烦的人胆大的人就上传了.只耍和软件同一目录双击就OK了
创新声卡KX音效精灵V2.2.rar
(2.3 KB, 下载次数: 26)
|
评分
-
查看全部评分
|