隐藏dll

这是一段隐藏dll的代码。

 

#include<windows.h>

typedef struct _UNICODE_STRING {
  USHORT   Length;
  USHORT   MaximumLength;
   PWSTR   Buffer;
} UNICODE_STRING,*PUNICODE_STRING;

typedef struct _PEB_LDR_DATA
{
 ULONG Length;
 BOOLEAN Initialized;
 PVOID SsHandle;
 LIST_ENTRY InLoadOrderModuleList;
 LIST_ENTRY InMemoryOrderModuleList;
 LIST_ENTRY InInitializationOrderModuleList;
} PEB_LDR_DATA, *PPEB_LDR_DATA;

typedef struct _LDR_MODULE
{
 LIST_ENTRY InLoadOrderModuleList; 
 LIST_ENTRY InMemoryOrderModuleList; 
 LIST_ENTRY InInitializationOrderModuleList;
 PVOID BaseAddress;
 PVOID EntryPoint; 
 ULONG SizeOfImage;
 UNICODE_STRING FullDllName; 
 UNICODE_STRING BaseDllName; 
 ULONG Flags; 
 SHORT LoadCount;
 SHORT TlsIndex; 
 LIST_ENTRY HashTableEntry;
 ULONG TimeDateStamp;
} LDR_MODULE, *PLDR_MODULE;

void HideDll2()
{
    HMODULE hMod = ::GetModuleHandle("123.dll");
    PLIST_ENTRY Head,Cur;
    PPEB_LDR_DATA ldr;
    PLDR_MODULE ldm;
    __asm
    {
        mov eax , fs:[0x30]
        mov ecx , [eax + 0x0c] //Ldr
        mov ldr , ecx
    }
    Head = &(ldr->InLoadOrderModuleList);
    Cur = Head->Flink;
    do
    {
        ldm = CONTAINING_RECORD( Cur, LDR_MODULE, InLoadOrderModuleList);
        //printf("EntryPoint [0x%X]/n",ldm->BaseAddress);
        if( hMod == ldm->BaseAddress)
         {
            ldm->InLoadOrderModuleList.Blink->Flink =
                ldm->InLoadOrderModuleList.Flink;
            ldm->InLoadOrderModuleList.Flink->Blink =
                ldm->InLoadOrderModuleList.Blink;
            ldm->InInitializationOrderModuleList.Blink->Flink =
                ldm->InInitializationOrderModuleList.Flink;
            ldm->InInitializationOrderModuleList.Flink->Blink =
                ldm->InInitializationOrderModuleList.Blink; 
            ldm->InMemoryOrderModuleList.Blink->Flink =
                ldm->InMemoryOrderModuleList.Flink;
            ldm->InMemoryOrderModuleList.Flink->Blink =
                ldm->InMemoryOrderModuleList.Blink; 
            break;
         }
        Cur= Cur->Flink;
     }while(Head != Cur);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Visual Graph是一套完整的图形编程语言,能够非常方便地建造各种基于图形的界面, 制作各种行业专用的图形控件,还可以制作丰富多样的报表。她能够和其他开发语言实现互相调用,弥补这些语言在图形(或报表)处理方面的不足。曾用她独立开发完成容量达200兆的电力调度自动化系统!用她开发的报表生成系统非常酷,能在预览界面下自由实现编辑,能有无数级别Undo和Redo,完全中国式! 软件的特点是: 一、丰富的制图功能: 能画折线、矩形、椭圆、圆弧、文字框等最基本图形元件,具备简单的开放性接口,能插入其他编程语言中的各种可视化组件,诸如按钮、列表框、图片等。图形单元具有多种可变属性,线条的颜色、类型、宽度、箭头;背景的颜色、网纹;文字框的字型、字号、颜色、下划线类型、四边的类型、文字横向、纵向的对齐方式。编辑能力包括移动、剪贴、拷贝、粘贴、删除、层次、智能排版等,并具有多级Undo和Redo功能。表格功能包括分割、合并文字单元、插入、删除表格行、丰富的查找与替换、智能斜线、多种数字修饰方式、多种序列填充模式、把一组文字框定义成数组方便计算。视图能力包括窗口无级缩放、用来方便单元定位的栅格、放在工作区内的打印纸可以方便地改变放大率和打印区域。二、中国式的表格特点: 表格是典型的中国式,不同于国外电子表格,这里没有行列的概念,而代之以“单元组”的概念,不论其中的单元是否在同行、同列,表中任何一组单元都能用鼠标拖动到其他位置,单元组间可以建立任何复杂的算法,所以处理中国式的复杂表格例如表中套表最为简单。在表格被插入具体应用程序中后,仍然允许编辑某些文字单元。图形无级缩放,无需“模拟显示”,完全所见所得的编辑见面。可以用鼠标拖动打印纸,改变放大率和打印区域。三、能够开发基于图形的控件: Visual Graph能够轻松制作各种图形元件,并把它们放入元件库中以便重复使用,通过传递一系列数据参数,改变元件的反应。四、强大的编程能力: 能够编写各种算法,能够处理鼠标、键盘消息。例如在视图文件初始化时调用OnCreate、释放时调用OnDestroy、单击左键时调用OnClick等等。这里所用的语言采用最古典、最简单的语法结构,具有简单的数据类型,内置上百个常用函数(数学运算、图形、字符串、系统控制等),此外支持外挂函数库,使它能够直接调用其他开发环境提供的丰富功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值