|
|
|
关于反调试技术[求助]标题增加长度----长度够了吧
来点回复啊。。。不要让我结不了帖啊。。。汗 |
|
winXPSP3进ring0方法
__asm{//去掉内存保护 cli mov eax,cr0 and eax,not 10000h mov cr0,eax } *((ULONG*)Address) = (ULONG)MyNtOpenProcess;//HOOK SSDT __asm{//恢复内存保护 mov eax,cr0 or eax,10000h mov cr0,eax sti } 最近比较忙,没上,来点小知识点,共同学习。 先解释一下cli,sti这两个指令,cli:禁止中断发生,sti:允许中断发生。 为什么在进入r0之前要禁止中断呢,因为在内核模式下,一旦发生中断,就是蓝屏。 再说说这个cr0寄存器,顾名思义control register,控制寄存器。这个寄存器具体的详细作用我就不在这赘述了,可以参看intel手册,其实啊,就是修改了cr0的值。cr0是一个32位的寄存器,其内容应该是这样PG 0000(中间都是0) ET TS EM MP PE 。 and eax,not 10000h,前面保存了cr0的值,由于cr0不能直接参与运算,所以在eax其算好再给赋值回去。10000h,其实这个值应该为,10000000h,16进制,为了更直观一点我们写成32位的二进制 1000 0000 0000 0000 0000 0000 0000 0000 not 操作以后 0111 1111 1111 1111 1111 1111 1111 1111 第31位{PG} 0000(中间都是0) {ET TS EM MP PE}共5位 然后再与操作 之前是开启的分页的,所以PG位是1,其他几个标志位暂时不管它,因为我们主要目的就是去掉分页。与后PG位置0,其他不变。再把eax传给er0。 恢复同理,只不过是反向,这里的去掉保护实际上就是在保护模式下让内存不分页,直接就可以找到线性地址。OK,不知道这样说,满意不? |
|
推荐一个安全点的加密狗
加密狗配合vmp。。很强了,已经。加密狗版本无所谓,有个差不多就行了。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
欺骗进程时间 设置进程时间
首先呢,你要确定,进程是获取的系统时间,而不是网络验证的时间。 然后,找到进程获取系统时间方法,一般去找这几个API函数: GetSystemTime(),clock(),GetCurrentTime() ,GetTickCount() , VOID GetSystemTime( LPSYSTEMTIME lpSystemTime // address of system time structure ),GetLocalTime 然后下断,找到调用这个函数的地址,然后替换这个函数,根据它调用的函数自己写一个时间函数。 注入到进程里,替换。OK。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值