模块隐藏三种方法

合集下载

隐藏应用的方法

隐藏应用的方法

隐藏应用的方法在日常生活中,我们经常会使用各种手机应用来帮助我们解决问题、提高效率、娱乐放松等。

然而,有时候我们也会希望一些应用能够在手机上“隐身”,不被他人轻易发现。

这可能是因为我们想保护个人隐私,或者只是希望在特定场合下使用这些应用。

那么,有没有一些方法可以帮助我们隐藏应用呢?本文将介绍几种常见的隐藏应用的方法,希望能够帮助到你。

第一种方法是利用手机自带的“应用隐藏”功能。

很多手机厂商在系统设置中都会提供应用隐藏的功能,用户可以选择需要隐藏的应用,然后设置一个密码或者指纹验证,这样其他人就无法在应用列表中看到这些被隐藏的应用了。

这种方法非常简单方便,而且不需要安装额外的软件,只需要在手机设置中进行简单的操作即可实现应用的隐藏。

第二种方法是通过第三方应用来隐藏应用。

在应用商店中有很多专门用于应用隐藏的软件,用户可以根据自己的需求选择合适的软件进行安装和使用。

这些软件通常会提供更加细致的隐藏设置,比如可以隐藏应用图标、设置隐藏的应用启动密码等。

有些软件还可以模拟出一个假的应用界面,让别人误以为你在使用其他应用。

使用第三方应用隐藏软件需要注意选择信誉良好的软件,以免给手机带来安全隐患。

第三种方法是利用文件夹来隐藏应用。

有些手机系统允许用户创建文件夹,并且可以自定义文件夹的名称和图标。

用户可以将需要隐藏的应用放入一个文件夹中,然后将文件夹的名称和图标设置得和其他普通文件夹一样,这样就可以达到隐藏应用的效果。

当然,这种方法只适用于少量的应用隐藏,如果需要隐藏大量的应用,可能就不太方便了。

第四种方法是通过应用锁来隐藏应用。

有些应用锁软件不仅可以对应用进行加锁,还可以将被加锁的应用隐藏起来,只有在输入密码或者指纹验证之后才能看到和使用这些应用。

这种方法可以一举两得,既可以保护应用的隐私,又可以达到隐藏应用的效果。

综上所述,隐藏应用的方法有很多种,每种方法都有其适用的场景和使用条件。

用户可以根据自己的需求和手机系统的特点选择合适的方法来隐藏应用。

abp 隐藏方法

abp 隐藏方法

abp 隐藏方法
ABP( Boilerplate)是一种基于的应用程序框架,提供一些默认实现和通用功能,可以快速构建企业级应用程序。

在ABP中,可以通过以下方法来隐藏方法:
1. 使用权限控制:ABP提供了一套完整的权限管理系统,可以通过为用户分配角色和权限,来控制用户对特定方法的访问权限。

可以在需要隐藏的方法上添加[Authorize]属性,然后将权限分配给特定的角色或用户,只有拥有相应权限的用户才能访问该方法。

2. 使用特性标记:ABP提供了丰富的特性标记功能,可以通过特性标记来隐藏方法。

可以在需要隐藏的方法上添加[Hidden]或[Ignore]等特性标记,表示该方法不会被展示或执行。

3. 自定义授权策略:ABP提供了自定义授权策略的功能,可以在应用程序中定义自己的授权策略,并使用这些策略来隐藏方法。

可以在需要隐藏的方法上添加[Authorize("PolicyName")]属性,然后在策略中定义该方法只能被特定的用户或角色访问。

以上方法只是在应用程序中隐藏方法的方式,实际上,这些方法仍然存在于代码中,只是对用户不可见。

如果需要完全隐藏某个方法,可以考虑将其移出应用程序代码或进行适当的封装。

进程中dll模块的隐藏

进程中dll模块的隐藏

进程中dll模块的隐藏为了避免自己的某个dll模块被别人检测出来,有时候希望在自己加载一个dll之后,或者将dll注入到他人进程之后避免被检查出来。

这就需要想办法抹掉这个dll的模块信息,使得Toolhelp、psapi等枚举模块的API无法枚举它。

我们可以先简单看看Windows枚举进程内模块的办法吧:首先是BOOL EnumProcessModules( HANDLE hProcess, HMODULE* lphModule, DWORD cb, LPDWORD lpcbNeeded);EnumProcessModules实际调用EnumProcessModulesInternal进行枚举。

下面是vista下psapi的代码片断:.text:514024B8 push ebx.text:514024B9 push 18h.text:514024BB lea eax, [ebp+stProcessBasicInfo].text:514024BE push eax.text:514024BF push ebx ;ebx=0.text:514024C0 push [ebp+hProcess].text:514024C3 call ds:__imp__NtQueryInformationProcess@20 ; NtQueryInformationProcess(x,x,x,x,x).text:514024C9 cmp eax, ebx.text:514024CB jge short loc_514024E0调用NtQueryInformationProcess获得ProcessBasicInformation,在PROCESS_BASIC_INFORMATION结构中取得PEB地址。

然后读取指定进程PEB中的数据text:514024E0 loc_514024E0: ; CODE XREF:EnumProcessModulesInternal(x,x,x,x,x)+24j.text:514024E0 mov eax, [ebp+stProcessBasicInfo.PebBaseAddress].text:514024E3 cmp eax, ebx.text:514024E5 jnz short loc_514024EE.text:514024E7 push 8000000Dh.text:514024EC jmp short loc_514024CE.text:514024EE ; —————————————————————————.text:514024EE.text:514024EE loc_514024EE: ; CODE XREF:EnumProcessModulesInternal(x,x,x,x,x)+3Ej.text:514024EE push ebx ; lpNumberOfBytesRead.text:514024EF push 4 ; nSize.text:514024F1 lea ecx, [ebp+Ldr].text:514024F4 push ecx ; lpBuffer.text:514024F5 add eax, 0Ch.text:514024F8 push eax ; lpBaseAddress.text:514024F9 push [ebp+hProcess] ; hProcess.text:514024FC mov edi, ds:__imp__ReadProcessMemory@20 ; ReadProcessMemory(x,x,x,x,x).text:51402502 call edi ; ReadProcessMemory(x,x,x,x,x) ; ReadProcessMemory(x,x,x,x,x)这里读取的是PEB地址+0C处的四个字节。

几种隐藏批处理运行窗口的方法

几种隐藏批处理运行窗口的方法

⼏种隐藏批处理运⾏窗⼝的⽅法(1)通过批处理命令实现。

缺点:会看到⼀个窗⼝⼀闪⽽逝。

优点:简单,直接添加即可。

@echo offif "%1"=="h" goto beginstart mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit:begin::以下为正常批处理命令,不可含有pause set/p等交互命令pause(2)利⽤vbs脚本实现隐藏。

缺点:调⽤⿇烦点。

优点:基本看不到痕迹(⾮绝对的,指⼀般⽤户)HideRun.vbsCreateObject("WScript.Shell").Run "cmd /c D:/test.bat",0其中D:/test.bat是你的批处理路径.....................................................................................................................................另⼀思路为把bat转换成vbs,然后vbs⽣成⼀个临时bat⽂件,然后WScript.Shell.Run隐藏启动这个临时bat。

HideRun.batecho CreateObject("WScript.Shell").Run "cmd /c D:/test.bat",0>$tmp.vbscscript.exe /e:vbscript $tmp.vbsdel $tmp.vbs这个批处理其实不能使其批处理本⾝隐藏,但是下⾯⼤部分隐藏调⽤批处理的原理和基础。

Dll 模块隐藏技术

Dll 模块隐藏技术

Dll模块隐藏技术学习各种外挂制作技术,马上去百度搜索"魔鬼作坊"点击第一个站进入、快速成为做挂达人。

如果你细细读完这篇文章,你会学到一下内容:1.PEB,TEB,LDR_DATA_TABLE_ENTRY等数据结构2.自己覆盖掉自己执行过的一段代码3.调试这个Dll你会发现DLL_PROCESS_ATTACH中的代码在OD首次停下即加载停止时已经执行完了!多么美妙啊!哈哈,OD不会发现你执行了什么4.本例最后附件有个ASM的控制台程序,用SDK编写,你可以学到用汇编写一个基本的控制台程序的格式5.最后那个控制台源码还包含完整的CreateRemoteThread注入进程的写法本文主要讲的是怎样隐藏一个dll模块,这里说的隐藏是指,dll被加载后怎样使它用一般的工具无法检测出来。

为什么要这么做呢?1.远程线程中的应用(1)大家都知道,远程线程注入主要有两种一种是直接copy母体中预注入的代码到目标进程地址空间(WriteProcessMemory),然后启动注入的代码(CreateRemoteThread),这种远程线程一旦成功实现,那么它只出现在目标进程的内存中,并没有对应的磁盘文件,堪称进程隐藏中的高招,可是缺点就是,你必须要在注入代码中对所有直接寻址的指令进行修正,这可是个力气活,用汇编写起来很烦。

(2)另一种更为常用的方法是注入一个dll文件到目标进程,这种方法的实现可以是以一个消息Hook为由进行注入,或者仍然使用CreateRemoteThread,这种方法的优点是Dll文件自带重定位表,也就是说你不必再为修正直接寻址指令而烦恼了!,dll自己会重定位!~~~嗯,真是不错的方法---可是我们说它不如上面说的方法牛。

为什么?因为它的致命伤就是可以用进程管理工具看见被加载的dll文件名、文件路径。

这真是太不爽了,因为只要用户看看模块列表很容易发现可疑模块!,再依据名字,找到路径,定位文件---dll文件就这样暴露了.这样也就不是很完美的隐藏进程。

xposed hide 使用方法

xposed hide 使用方法

xposed hide 使用方法一、简介Xposed框架是一款在Android平台上流行的模块化框架,它允许用户在不影响系统核心功能的前提下,对系统进行深度定制和优化。

Xposed Hide是Xposed 框架中的一个模块,它允许用户在不改变设备外观的情况下隐藏应用程序图标。

二、安装和使用步骤1. 下载和安装Xposed框架:访问XDA开发者论坛,找到适合您Android版本的Xposed框架文件,并按照说明进行安装。

2. 下载Xposed Hide模块:在Xposed框架的开发者提供的资源中,找到Xposed Hide模块,并下载相应的文件。

3. 安装Xposed Hide模块:将下载的Xposed Hide模块文件导入到Xposed 框架中,并按照说明进行安装。

4. 重启设备:完成安装后,重启设备以使Xposed框架和模块生效。

5. 隐藏应用程序图标:在Xposed Hide模块中选择需要隐藏的应用程序,并设置相应的隐藏参数。

三、注意事项1. Xposed框架和模块可能会对系统稳定性产生影响,请在安装和使用前备份重要数据。

2. 在使用Xposed Hide模块时,请确保所选应用程序是您自己已经安装的,避免误删其他应用程序。

3. 请定期检查设备设置和应用程序列表,确保Xposed框架和模块的正确安装和运行。

4. 在使用过程中遇到问题,请及时联系Xposed框架和模块的开发者,寻求帮助和支持。

四、常见问题解答1. Q:我已经安装了Xposed框架和Xposed Hide模块,但我的设备仍然没有变化?A:请确保重启设备后再次检查,并检查Xposed Hide模块的设置是否正确。

2. Q:我在使用过程中误删了其他应用程序,怎么办?A:请立即停止使用Xposed Hide模块,并从设备上卸载该模块。

然后,恢复误删的应用程序,并检查设备设置和应用程序列表,确保其他应用程序没有受到影响。

3. Q:我的设备出现了一些未知的问题,怎么办?A:请联系Xposed框架和模块的开发者,他们将提供帮助和支持。

excel中根据条件隐藏列的方法

excel中根据条件隐藏列的方法

在 Excel 中,有时我们需要根据特定的条件来隐藏某些列,以便更好地展示我们所需要的数据。

下面将介绍几种常用的方法来实现这一目的。

1. 使用筛选功能在 Excel 中,我们可以使用筛选功能来根据条件隐藏列。

具体步骤如下:- 首先选中数据表格中的任意一个单元格。

- 然后点击“数据”选项卡中的“筛选”按钮,此时会在每一列的标题栏上出现一个小三角形的筛选箭头。

- 点击某一列的筛选箭头,在弹出的菜单中选择“自定义筛选”选项。

- 在弹出的对话框中,我们可以根据需要设置多种条件,比如大于、小于、等于某个数值等。

- 设置完条件后,点击“确定”按钮,Excel 会根据条件自动隐藏不符合条件的列。

使用筛选功能隐藏列的优点是操作简单快捷,适用于对数据表格的临时展示和分析。

但缺点是一旦关闭文档,条件会被清除,需要重新设置。

2. 使用自定义公式在 Excel 中,我们也可以使用自定义公式来根据条件隐藏列。

具体步骤如下:- 首先选中数据表格中的一个单元格。

- 在公式栏中输入如下公式:“=IF(条件,要显示的数值,空白)”。

- 其中,条件可以是各种常见的逻辑判断,比如大于、小于、等于等;要显示的数值可以是这一列数据的数值或其他内容;空白则表示条件不符合时这一列要显示的内容为空。

- 输入完公式后,按下回车键,Excel 会根据条件自动隐藏不符合条件的列。

使用自定义公式隐藏列的优点是设置条件灵活且具有较强的实时性,适用于对数据表格的长期展示和分析。

但缺点是需要对 Excel 公式有一定的了解和掌握。

3. 使用 VBA 宏对于有一定编程知识的用户,还可以使用 VBA 宏来实现根据条件隐藏列的操作。

具体步骤如下:- 首先打开 Excel 并按下“Alt + F11”组合键,进入 Visual Basic 编辑器。

- 在“插入”菜单中选择“模块”,新建一个模块。

- 在新建的模块中输入如下 VBA 代码:```Sub HideColumnsByCondition()Dim cell As RangeFor Each cell In Range("A1:Z1")If cell.Value < 0 Thencell.EntireColumn.Hidden = TrueElsecell.EntireColumn.Hidden = FalseEnd IfNextEnd Sub```- 点击“运行”菜单中的“运行子”选项,Excel 会根据条件自动隐藏不符合条件的列。

hiddenimports语法

hiddenimports语法

在Python编程语言中,hiddenimports语法是指用来导入隐藏模块的方法。

在编写Python程序时,我们经常需要引入外部模块来扩展程序的功能,而有些模块可能是隐藏的或者不直接暴露在标准的import路径下。

这时,我们就可以使用hiddenimports语法来引入这些隐藏模块,以便程序能够正常运行。

让我们来探讨hiddenimports的基本语法和用法。

在Python的代码中,我们可以使用以下语法来实现hiddenimports:1. 使用import语句:在需要导入隐藏模块的地方,我们可以使用import关键字后跟模块名的方式来引入隐藏模块,例如:```import hidden_module```2. 使用from-import语句:我们也可以使用from关键字后跟包名和模块名的方式来引入隐藏模块中的具体成员,例如:```from hidden_package import hidden_module```3. 使用import-as语句:在引入隐藏模块时,我们还可以使用as关键字来给模块指定别名,以便在程序中更方便地引用该模块,例如:```import hidden_module as hm```了解了hiddenimports的基本语法后,让我们来探讨一下hiddenimports的深度应用场景。

在实际的软件开发中,有些第三方库或者自定义模块可能会采用隐藏模块的方式来组织代码结构,以达到保护代码或者防止命名冲突的目的。

在这种情况下,我们就需要了解和使用hiddenimports语法来正确地引入这些隐藏模块,以便程序能够正常运行和访问隐藏功能。

在Python的打包工具PyInstaller中,也经常会用到hiddenimports 语法来指定需要打包的隐藏模块,以便在生成可执行程序时能够正确地包含这些隐藏模块。

对hiddenimports的深入理解和灵活运用,不仅能够帮助我们编写更加灵活和可扩展的Python程序,还能够提高我们在实际项目中的开发效率和质量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要(转自网络):
一、从PEB的Ldr链中消失
引用内容
lkd> dt _PEB 7ffdc000 //当前PEB的地址
nt!_PEB
...
+0x00c Ldr : 0x001a1e90
_PEB_LDR_DATA //这里指向Ldr结构
lkd> dt _PEB_LDR_DATA 0x001a1e90 //这个结构里有三个链表的表头
nt!_PEB_LDR_DATA
+0x000 Length : 0x28
+0x004 Initialized : 0x1 ''
+0x008 SsHandle : (null)
+0x00c InLoadOrderModuleList : _LIST_ENTRY [ 0x1a1ec0 - 0x1a34f8 ]
+0x014 InMemoryOrderModuleList : _LIST_ENTRY [ 0x1a1ec8 -
0x1a3500 ]
+0x01c InInitializationOrderModuleList : _LIST_ENTRY [ 0x1a1f28 - 0x1a3508 ]
+0x024 EntryInProgress : (null)
这里看到有三个链表,其实三个链表的内容是一样的,但是链表的顺序不一样,分别按加载顺序、内存顺序、初始化顺序排列。

每一个DLL由一个LDR_DATA_TABLE_ENTRY结构描述,但是第一个结构被链入了
三个链表。

取一个来看看:
引用内容
lkd> dt _LDR_DATA_TABLE_ENTRY 0x1a34f8
nt!_LDR_DATA_TABLE_ENTRY
+0x000 InLoadOrderLinks : _LIST_ENTRY [ 0x1a1e9c - 0x1a3450 ]
+0x008 InMemoryOrderLinks : _LIST_ENTRY [ 0x1a1ea4 - 0x1a3458 ]
+0x010 InInitializationOrderLinks : _LIST_ENTRY [ 0x1a1eac -
0x1a3460 ]
+0x018 DllBase : 0x20000000
+0x01c EntryPoint : (null)
+0x020 SizeOfImage : 0x549000
+0x024 FullDllName : _UNICODE_STRING
"C:\WINDOWS\system32\xpsp2res.dll"
+0x02c BaseDllName : _UNICODE_STRING
"xpsp2res.dll"
......//省略部分内容
随便取一个链表进行遍历,根据DllBase找到自己的DLL之后,从三个链中RemoveEntryList就可以了,这样所有使用PEB->Ldr结构来枚举DLL链表的就
无法找到了。

由于大部分ARK对隐藏DLL的查找并不是很重视(比如
RKU,Gmer,XueTr,Atool,NIAP),因此该方法就可以bypass很多ARK了,还是有一定市场的~
但对IceSword是个例外
二、从VAD树中消失
IceSword 在枚举进程模块时使用的是ZwQueryVirtualMemory,查询的InfoClass是MemorySectionName(或者叫 MemoryMappedFilenameInformation,值为2)。

NtQueryVirtualMemory首先判断 Vad->ControlArea->FilePointer是否有效,若有效则调用ObQueryNameString查询此文件对象的名称,最终由文件系统完成此次查询工作。

关于VAD的详细知识,可以参考《JIURL玩玩Win2k内存篇 VAD》,这里不作为重点,知道是平衡二叉树就可以了,树的根结点在EPROCESS中。

引用内容
lkd> dt _EPROCESS 83f915b8
nt!_EPROCESS
...
+0x11c VadRoot : 0x84079c08
该成员是一个MMVAD类型的结构,而成员LeftChild和RightChild分别是该结点的左子结点和右子结点。

引用内容
lkd> dt _MMVAD 0x84079c08
nt!_MMVAD
+0x000 StartingVpn : 0x8e0
+0x004 EndingVpn : 0x8e0
+0x008 Parent : (null)
+0x00c LeftChild : 0x843b1128 _MMVAD //左孩子
+0x010 RightChild : 0x840bf4a0 _MMVAD //右孩子
+0x014 u : __unnamed //标志位
+0x018 ControlArea : (null)
+0x01c FirstPrototypePte : (null)
+0x020 LastContiguousPte : (null)
+0x024 u2 : __unnamed
要对目标DLL实施隐藏时,先获取该DLL基址,然后遍历VAD树,根据MMVAD->StartingVpn做匹配(StartingVpn实际上是内存地址的高20位,比如0x7c800000在这里将只显示为0x7c800)找到目标DLL的VAD结构(这里以kernel32.dll为例,其加载地址正为0x7c800000):
引用内容
lkd> dt _MMVAD 84174a18
nt!_MMVAD
+0x000 StartingVpn : 0x7c800
+0x004 EndingVpn : 0x7c91b
+0x008 Parent : 0x841223a0 _MMVAD
+0x00c LeftChild : 0x84120470 _MMVAD
+0x010 RightChild : 0x841a4790 _MMVAD
+0x014 u : __unnamed
+0x018 ControlArea : 0x876d0b88 _CONTROL_AREA //关键域
+0x01c FirstPrototypePte : 0xe177d6f0 _MMPTE
+0x020 LastContiguousPte : 0xfffffffc _MMPTE
+0x024 u2 : __unnamed
lkd> dt _CONTROL_AREA 0x876d0b88
nt!_CONTROL_AREA
...
+0x024 FilePointer : 0x876d0b10 _FILE_OBJECT外//目标在这里
好了,看到FILE_OBJECT了,这时你应该会想到系统是从这里取到的文件名吧,没错,这儿就是我们要动手脚的地方。

根据小伟、Sysnap等人的测试,只要把ControlArea->FilePointer->FileName.Buffer填0就可以实现该DLL的隐藏(根据字符串的特性,实际上只需要把第一个字符填0就可以了),此时ZwQueryVirtualMemory将返回0xC0000039错误,即“指定的路径无效”,自然也就枚举不到了。

而且对于那些共享的dll,如系统的ntdll.dll,kernel32.dll或在不同进程中被加载2次或以上的dll,虽然是在不同进程中,但是使用的是同一个共享的ControlArea结构,因此只需要改一个,那么在所有进程中都将实现隐藏,这对于隐藏全局钩子类型的 dll显然是非常方便的。

IS是在ZwQueryVirtualMemory查完全无法枚举到DLL时才采用枚举PEB的方法,因此结合前面的Ldr断链法,足以搞定N多ARK了。

我所说的“从VAD树中消失”只是使该VAD的信息从IS的查询结果中消失,而并不是真的摘掉该VAD~~
值得一说的是,Sysnap的Yas Kit在检测隐藏DLL方面也是比较强的,但是对于动了VAD的,似乎也无能为力~
三、抹掉PE特征
有的工具可以直接枚举所有有效内存并检查PE标记来确定是否有隐藏DLL,因此需要把PE特征抹掉来对抗之,方法很简单,把PE头整个填零就可以了。

这种方法主要是作为前两种方法的补充,单独搞是没有意义的。

再来说说非正规方式加载的DLL,怎么个非正规呢?其实就是不用LoadLibrary,自已实现Loader的功能.
实现Loader功能之后,不管你是Load别的DLL,或者DLL自已Load自己(老V 的ReloadAndRun同样适用于DLL),在Load完成后,不会出现在PEB->Ldr链中,它的VAD也不会与FILE_OBJECT发生任何关系,然后再抹掉PE特征,隐藏效果与上面的正规隐藏法相当,甚至要更隐蔽一些~~
再极端一点,DLL也可以完全不要,注入具有相同功能的shellcode然后开线程
执行就可以了,只是shellcode写起来麻烦一点而已,写Loader也麻烦啊~~
/archive/index.php?t-125571.html
/1228348/282331。

相关文档
最新文档