hide hidewizard注册码 会不会导致LOL认为开外挂

热门搜索:
当前位置:
HideWizard
上班玩游戏,炒什么的,总是担心上司领导过来看到挨批评,因此不少人都喜欢用老板键软件,小编今天推荐一款非常有口碑的窗口隐藏软件,HideWizard,也就是无忧隐藏,这款软件可以隐藏窗口,文件以及进程,非常的彻底,没有一丝痕迹,适合上班族使用。
HideWizard无忧隐藏集成了窗口隐藏工具、文件隐藏工具、进程隐藏工具的功能,操作方便、功能实用。其独有的开机自动隐藏功能可轻松实现BT、eMule、迅雷等工具自动隐藏下载。亦是上班族在、玩游戏、时用来快速隐藏窗口及隐藏的最佳工具。无忧隐藏以强化隐私保护为核心设计理念,隐藏彻底且不露痕迹。
1.利用鼠标或键盘快捷键瞬间隐藏指定窗口或通知区图标。
2.实现迅雷、电驴等工具自动隐藏下载。
3.隐藏私人文件夹、文件。
4.隐藏任意进程,彻底隐藏程序,或保护游戏辅助工具。
5.禁止创建特定的窗口,可用于阻止某些弹出式窗口。
6.快速锁定屏幕,离开电脑桌时不必关机也能保护电脑。
7.虚拟桌面功能,适合大型游戏隐藏或挂机。
8.可通过鼠标滚轮方便调节窗口透明度。
31.20MB|5.5
21.90MB|5.5
12.40MB|5.5
4.30MB|5.5
10.30MB|5.5
22.60MB|5.5
电脑版下载
本站仅创建用户沟通交流的信息平台,所展示的游戏/软件内容来均来自于第三方用户上传分享,资源仅作为用户间分享讨论之用,除开发商授权外不以盈利为目的。如果侵犯了您的权益,请反馈,我们将第一时间处理。
装机必备软件
微信号: 游迅网
扫描二维码添加
海量单机游戏免费下载!
您身边的手机游戏宝库!
CopyRight2004年-年
游迅网 All Rights Reserved
备案编号:沪ICP备号-9您的位置: >
> hidewizard 64位下载 v9.50 官网免费版
hidewizard 64位是一款窗口隐藏软件,可以一键将指定的窗口、文件进行隐藏,比如在上班的时候你正在打游戏或者炒股票,这个时候老板来了,怎么办呢?使用hidewizard 64位就可以一键搞定了,这个是64位版本,比较难找,有需要的快快下载吧。
1.利用鼠标或键盘快捷键瞬间隐藏指定窗口或通知区图标。
2.实现迅雷、电驴等工具自动隐藏下载。
3.隐藏私人文件夹、文件。
4.隐藏任意进程,彻底隐藏程序,或保护游戏辅助工具。
5.禁止创建特定的窗口,可用于阻止某些弹出式窗口。
6.快速锁定屏幕,离开电脑桌时不必关机也能保护电脑。
7.虚拟桌面功能,适合大型游戏隐藏或挂机。
8.可通过鼠标滚轮方便调节窗口透明度。
高速下载器地址
其它下载地址
热门标签:
装机必备:
有任何意见或者建议请联系邮箱:[或
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!
Copyright © . All Rights Reserved& & 偶以前搞过一些破解,但都是一些软柿子,前几天有隐藏木马这么个需求,包括进程、窗口、硬盘文件等,非要用HideWIzard出手不可。HideWIzard6.4有破解版但功能不够,只好拿HideWIzard最新版9.29开刀了。感觉还是挺麻烦的,也许是我水平很菜把,废话不说进入……
声明:该文章系网友上传分享,此内容仅代表网友个人经验或观点,不代表本网站立场和观点;若未进行原创声明,则表明该文章系转载自互联网;若该文章内容涉嫌侵权,请及时向
论文写作技巧
上一篇:下一篇:
相关经验教程2336人阅读
软件逆向分析(1)
《窗口、文件、进程隐藏工具——无忧隐藏》(HideWizard_v9.29)最新版含破解补丁.rar
以前搞过一些破解,但都是一些软柿子,前几天有隐藏木马这么个需求,包括进程、窗口、硬盘文件等,非要用HideWizard出手不可。HideWizard6.4有破解版但功能不够,只好拿HideWizard最新版9.29开刀了。感觉还是比较麻烦的,也许是我水平有限,哈哈,下面进入正题
0)先对程序的情况说明一下,程序总共有三处验证,有些可以观察到,有些是破解过程中发现
1.对注册码在客户端进行初步判断,输入不正确的话什么提示都没有,否则进入第二步服务器激活验证;
2.与服务器通信,在static控件显示返回结果;
3.使用imagehlp进行EXE校验,如果发现二进制被修改则自动退出
下面详细阐述哈
1)首先是PEiD查壳,啥也没发现,事实上到最后我也不知道是什么壳,也没学过脱壳,汗一个,哪位大大知道不妨告知哈。IDA6.1打开EXE,可以判断是MFC程序
2)OD加载程序后,自带的7E42xxxx断点一定要清除,否则会导致系统假死,狂按F9过一分钟能缓回来,缓不回来只好重启了。加载成功后窗口切换焦点时也是一顿一顿的,不知是不是有意为之,调试过程中尽量不要切换焦点。顿的程度好像与系统和OD也有关系,具体作用关系不明,最好找个能自动清除debug标志位的。OD换了好几个
才碰上个顺手的,我用的ODbyDYK&v1.10里的Pza74.exe,能自动清除debug标志位,对call&jmp等指令能高亮显示,Pza74缺点是插件不如OllyICE多,但OllyICE没高亮,看的很头疼。
3)正式进入调试步骤,首先需要在激活按钮处下断,因为没有任何提示,只好在CCmdTarget::OnCmdMsg处下断,在IDA记下地址在OD直接bp。OnCmdMsg第四个参数即为消
息响应函数。函数如下,程序在0042AB9B处检查注册码位数,只要让输入的注册码为17位就不会跳到函数末尾,在末尾处可以看出SendMessageA是进入下一步的关键,因
此中间的算法就不用看了,直接找跳转,把该nop的nop掉。
&pre name=&code& class=&plain& style=&color: rgb(69, 69, 69); font-size: 14 line-height: 21&&0042AB5F
mov ebp,esp
sub esp,14
mov esi,ecx
mov dword ptr ss:[ebp-14],esi
FF15 C4D14600
call dword ptr ds:[&&KERNEL32.GetTickCount&] [GetTickCount
mov ecx,eax
2B0D A4F44800
sub ecx,dword ptr ds:[48F4A4]
81F9 2C010000
cmp ecx,12C
jb HideWiza.0042ACC5
mov ecx,esi
A3 A4F44800
mov dword ptr ds:[48F4A4],eax
E8 B0530000
call HideWiza.0042FF43
add esi,410
mov eax,dword ptr ds:[esi]
cmp dword ptr ds:[eax-C],11 ////////////////////
mov ecx,esi
jnz HideWiza.0042ACBB ////////////////不成立则跳到0042ACC5处,不能跳,需要nop掉
jnz short HideWiza.0042ACB9 /////////////////不能跳,需要nop掉
|. |394D F0
cmp dword ptr ss:[ebp-10],ecx
jnz short HideWiza.0042ACB9 /////////////////不能跳,需要nop掉
|. |8B45 EC
mov eax,dword ptr ss:[ebp-14]
/lParam = A
|wParam = 1
|. |68 CA040000
|Message = MSG(4CA)
|. |FF70 20
push dword ptr ds:[eax+20]
|. |FF15 84D54600
call dword ptr ds:[&&USER32.SendMessageA&] \SendMessageA
jmp short HideWiza.0042ACC5
mov ecx,esi
68 F2DC4600
push HideWiza.0046DCF2
E8 1B7BFDFF
call HideWiza.
4)用ue把exe改掉后发现程序自动退出,猜测是某种校验,这时程序不会弹出窗口,判断是在CXXDlg构造函数或OnInitialDialog等处。直接在入口处跟进,这里有个取巧的办法,直接od同时加载未修改和已修改的一起debug,比较哪里不一样,如果过程中哪个call直接把窗口弹出来或是退出,就需要重新加载跟进这个call。最后发现下面的代码,终于找到了,就是imagehlp.MapFileAndCheckSumA这个东西做的怪。查了一下imagehlp,的确是进行二进制校验的一个东东。0041E36E处可以看出[ebp-2C]与[ebp-28]一个是编译时生成的,一个是现算的。后面jnz判断是否一致,后面的OpenMutexA啥的应该是保证程序单例,是程序后面的逻辑,因此把jnz&nop掉即可。
E9 AD030000
jmp HideWiza.0041E6FB
lea eax,dword ptr ss:[ebp-28]
lea eax,dword ptr ss:[ebp-2C]
xor edi,edi
68 40EA4800
push HideWiza.0048EA40
mov dword ptr ss:[ebp-2C],edi
mov dword ptr ss:[ebp-28],ebx
FF15 FCD74600
call dword ptr ds:[&&imagehlp.Ma&;
imagehlp.MapFileAndCheckSumA
/////////////////////////////////////////////Checksum!!!
test eax,eax
jnz short HideWiza.0041E37A
mov eax,dword ptr ss:[ebp-2C]
cmp eax,dword ptr ss:[ebp-28]
jnz HideWiza.0041E6FB ////////////////////////////////should not jmp, so nop it
68 6C3E4700
push HideWiza.00473E6C
ASCII &SEAN_U_HIDE_WIZARD&
lea ecx,dword ptr ss:[ebp-20]
E8 604BFEFF
call HideWiza.00402EE7
push dword ptr ss:[ebp-20] /MutexName
mov dword ptr ss:[ebp-4], |
|Inheritable
FF15 2CD44600
call dword ptr ds:[&&KERNEL32.Op&; \OpenMutexA
mov edi,dword ptr ss:[ebp-24]
mov dword ptr ds:[edi+A4],eax
cmp eax,ebx
je HideWiza.0041E43D
5)终于到最后一步,这时运行程序随便输入注册码注册,发现还有服务器验证,IDA里发现程序网络通信用的是CHttpFile,继承于CInternetFile,结合IDA6.1的hex&rays进行反编译,CInternetFile有四个方法,Read&ReadString&Write&WriteString,我们主要关心的是读取,记下地址在OD里下断,发现程序调用的是CInternetFile::Read函数。一般人写通信程序都会把建立连接、发送、接受、关闭连接自己封装一下,因此可以顺便在IDA里把周围的关于网络通信的函数没名字的都命名一下,找调用者就结合OD,这么比较方便查看。
用OD在CInternetFile::Read往上导,发现一个可疑函数,IDA反编译一下:
signed int __thiscall sub_42BFB4(void *this, int a2, int a3)
int v3; // edi@1
void *v4; // ebx@1
int v6; // eax@3
int v7; // eax@3
int v8; // eax@3
int v9; // edi@3
const CHAR *v10; // ebx@5
int v11; // esi@5
int v12; // esi@7
int v13; // eax@10
int v14; // eax@10
int v15; // eax@12
int v16; // eax@12
int v17; // eax@14
int v18; // eax@14
int v19; // eax@15
int v20; // eax@15
int v21; // eax@15
int v22; // [sp+Ch] [bp-20h]@11
const CHAR *v23; // [sp+10h] [bp-1Ch]@3
char *v24; // [sp+14h] [bp-18h]@15
int v25; // [sp+18h] [bp-14h]@3
int v26; // [sp+1Ch] [bp-10h]@3
int v27; // [sp+28h] [bp-4h]@1
char v28; // [sp+2Ch] [bp+0h]@1
char S // [sp+82Ch] [bp+800h]@15
char v30; // [sp+82Dh] [bp+801h]@15
unsigned int v31; // [sp+C2Ch] [bp+C00h]@1
v31 = (unsigned int)&v28 ^ __security_
if ( !WaitForSingleObject(hHandle, 0) )
goto LABEL_2;
unknown_libname_115(v3);
v6 = sub_435E86(v26);
unknown_libname_113(v6);
v7 = sub_435E86(v26);
unknown_libname_113(v7);
LOBYTE(v27) = 2;
sub_402793(&a2);
sub_42BF09(&v25, &v23);
LOBYTE(v27) = 3;
v8 = (int)_LN34_4(v4, 0, 0, 0, 0);
if ( !v8 )
ATL::CStringData::Release(v23 - 16);
ATL::CStringData::Release(v25 - 16);
ATL::CStringData::Release(a2 - 16);
return -20;
v10 = v23;
LOBYTE(v27) = 5;
v11 = (int)sub_, 0, v23, 0, 1u, 0, 0, 0xu);
if ( !v11 )
goto LABEL_6;
LOBYTE(v27) = 7;
if ( !CHttpFile::SendRequest(v11, 0, 0, 0, 0) ) ///////////////////////////////////////发送消息
(*(void (__thiscall **)(int))(*(_DWORD *)v11 + 76))(v11);
v13 = *(_DWORD *)v11;
(*(void (__thiscall **)(int, signed int))(v13 + 4))(v11, 1);
(*(void (__thiscall **)(int))(*(_DWORD *)v9 + 12))(v9);
v14 = *(_DWORD *)v9;
(*(void (__thiscall **)(int, signed int))(v14 + 4))(v9, 1);
ATL::CStringData::Release(v10 - 16);
ATL::CStringData::Release(v25 - 16);
v25 = -20;
v12 = v25;
ATL::CStringData::Release(a2 - 16);
return v12;
if ( !CHttpFile::QueryInfoStatusCode(&v22) )
(*(void (__thiscall **)(int))(*(_DWORD *)v11 + 76))(v11);
v15 = *(_DWORD *)v11;
(*(void (__thiscall **)(int, signed int))(v15 + 4))(v11, 1);
(*(void (__thiscall **)(int))(*(_DWORD *)v9 + 12))(v9);
v16 = *(_DWORD *)v9;
(*(void (__thiscall **)(int, signed int))(v16 + 4))(v9, 1);
ATL::CStringData::Release(v10 - 16);
ATL::CStringData::Release(v25 - 16);
v25 = -21;
goto LABEL_7;
if ( v22 != 200 )
(*(void (__thiscall **)(_DWORD))(*(_DWORD *)v11 + 76))(v11);
v17 = *(_DWORD *)v11;
(*(void (__thiscall **)(int, signed int))(v17 + 4))(v11, 1);
(*(void (__thiscall **)(_DWORD))(*(_DWORD *)v9 + 12))(v9);
v18 = *(_DWORD *)v9;
(*(void (__thiscall **)(int, signed int))(v18 + 4))(v9, 1);
v12 = v22;
ATL::CStringData::Release(v10 - 16);
ATL::CStringData::Release(v25 - 16);
goto LABEL_8;
memset(&v30, 0, 0x3FFu);
sub_4027E0(Caption);
v19 = *(_DWORD *)v11;
v25 = 1000;
(*(void (__thiscall **)(int, char *, signed int))(v19 + 52))(v11, &Src, 1000); ////////////////CInternetFile_Read 此处地址 一共两次read,
调用CInternet::Read
sub_4027E0(&Src); ///////////////////// --&调用sub_402466 Src返回的c字符串 此处地址为 写了2个byte的内存,后面都不用看了
(*(void (__thiscall **)(_DWORD))(*(_DWORD *)v11 + 76))(v11); ////////////////////////////CInternetFile::Close
v20 = *(_DWORD *)v11;
(*(void (__thiscall **)(int, signed int))(v20 + 4))(v11, 1); ////////////////////////////CHttpFile::_scalar_deleting_destructor_
(*(void (__thiscall **)(_DWORD))(*(_DWORD *)v9 + 12))(v9); ////////////////////////////CInternetFile::Close
v21 = *(_DWORD *)v9;
(*(void (__thiscall **)(int, signed int))(v21 + 4))(v9, 1); ////////////////////////////sub_440C6D一些字符串释放
ATL::CStringData::Release(v10 - 16);
ATL::CStringData::Release(v25 - 16);
ATL::CStringData::Release(a2 - 16);
6)可以发现干货就在最后几行,内部调用CInternet::Read,整个函数一共调用了两次,用ethereal截报文发现客户端向发送两个HTTP请求,
服务器回的都是很简单的字符串1,存在Src里,sub_4027E0(&Src)处理一下,写了两个2byte的内存,位置不固定。
7)明显的思路是在Src处下内存访问断点,发现到了strtoxl这么个函数,是C的一个内部使用的函数,往上导,到strtol,最后到atol,后来发现这个地址被读了十几次
,于是干脆换了另一个方法。程序在请求返回后会设置static字符串,于是在SetWindowTextA处下API断点。往上倒腾,功夫不负有心人,发现了程序的验证逻辑:
& \FF75 DC
push dword ptr ss:[ebp-24]
call HideWiza.
cmp eax,1E
jge short HideWiza.0042B27A //////////////////////////////////jump it
jnz short HideWiza.
mov ecx,esp
mov dword ptr ss:[ebp-10],esp
push HideWiza.
E8 CF7CFDFF
call HideWiza.00402EE7
lea eax,dword ptr ss:[ebp-10]
E8 EFEEFFFF
call HideWiza.
C645 FC 0A
mov byte ptr ss:[ebp-4],0A
jmp short HideWiza. ////////////////////////////jump back to death
cmp eax,edi
je short HideWiza.
cmp eax,14
je short HideWiza.
mov ecx,esp
mov dword ptr ss:[ebp-10],esp
68 E4524700
push HideWiza.
E8 A57CFDFF
call HideWiza.00402EE7
lea eax,dword ptr ss:[ebp-10]
E8 C5EEFFFF
call HideWiza.
C645 FC 0C
mov byte ptr ss:[ebp-4],0C
.^ E9 70FFFFFF
jmp HideWiza. ////////////////////////////jump back to death
mov ecx,esp
mov dword ptr ss:[ebp-10],esp
68 0C534700
push HideWiza.0047530C
E8 817CFDFF
call HideWiza.00402EE7
lea eax,dword ptr ss:[ebp-10]
E8 A1EEFFFF
call HideWiza.
C645 FC 0B
mov byte ptr ss:[ebp-4],0B
.^ E9 4CFFFFFF
jmp HideWiza. ////////////////////////////jump back to death
mov ecx,dword ptr ss:[ebp-1C]
mov edx,ecx
imul edx,edx,0D
81EA 2E160000
sub edx,162E
cmp edx,eax
je short HideWiza. //////////////////////////////////jump it
mov ecx,esp
mov dword ptr ss:[ebp-10],esp
68 E4524700
push HideWiza.
E8 4B7CFDFF
call HideWiza.00402EE7
lea eax,dword ptr ss:[ebp-10]
E8 6BEEFFFF
call HideWiza.
push dword ptr ds:[eax] /Arg1
mov ecx,dword ptr ss:[ebp-20] |
C645 FC 0D
mov byte ptr ss:[ebp-4],0D |
E8 2A1F0000
call HideWiza.0042D1DF \HideWiza.0042D1DF
mov ecx,dword ptr ss:[ebp-10]
add ecx,-10
C645 FC 07
mov byte ptr ss:[ebp-4],7
E8 DF5DFDFF
call HideWiza.
mov ecx,dword ptr ss:[ebp-14]
E8 F61F0000
call HideWiza. \HideWiza.
E9 B8020000
jmp HideWiza.0042B58A
imul ecx,ecx,0B
xor ecx,607
mov eax,ecx
mov dword ptr ss:[ebp-14],ecx
mov ecx,2710
cmp eax,ecx
jge short HideWiza. //////////////////////////////////auto jump it
imul eax,eax,0A
cmp eax,ecx
jl short HideWiza.
mov dword ptr ss:[ebp-14],eax
3D A0860100
cmp eax,186A0
jl short HideWiza.0042B30F //////////////////////////////////auto jump it
jmp short HideWiza.0042B2FF
mov eax,dword ptr ss:[ebp-14]
3D A0860100
cmp eax,186A0
mov dword ptr ss:[ebp-14],eax
jge short HideWiza.0042B2FC
893D 40F04800
mov dword ptr ds:[48F040],edi
E8 6CAB0000
call HideWiza.00435E86
lea ecx,dword ptr ss:[ebp-1C]
E8 816DFDFF
call HideWiza.
push dword ptr ss:[ebp-14]
lea eax,dword ptr ss:[ebp-1C]
68 F0EF4600
push HideWiza.0046EFF0
ASCII &%d&
8)0042D21B是CWnd::SetWindowText,他调用SetWindowTextA显示序列号无效字符串0042D21B的调用者为0042B1CB,找通向0042B1CB的跳转,有三处,还都在后边,分别是227&251&275,分析一下这段代码,处判断eax是不是不小于1e,如果小于1e,再判断是不是2,如果是2,进入227玩完;不是2,判断是不是14,不是的话进入251玩完,是的话进入275玩完。自己修改一下返回值发现2是序列号已存在,14没看,1也就是其它情况是序列号无效。因此需要在处jmp掉。随后在0042B28A处发现一个je,一般相等情况只有一种,肯定是好的,不用看直接jmp掉,最后什么都没改,程序已经crack掉了,记录一下中间没改的跳转,和,为保险起见,可以jmp一下。
这时就已经破解完成了,欢迎探讨!
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:127289次
积分:1700
积分:1700
排名:千里之外
原创:47篇
评论:97条
(1)(3)(1)(1)(4)(3)(1)(9)(7)(5)(4)(6)(2)(1)}

我要回帖

更多关于 hidewizard 64 破解版 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信