• 标 题:瑞星、KV3000小谈---GFH要看就进来吧--不闲DOS老土的也近来看看吧。 (5千字)
  • 作 者:飞刀浪子
  • 时 间:2001-5-8 9:51:54
  • 链 接:http://bbs.pediy.com

写这篇该死东西根本算不上教程,只是GFH要,只好写一下了.如果闲老掉牙,赶快退出,免得伤了你的法眼。
下面是在瑞星中找到的保护模式的进出。
    PUSH      00
    POPF                                       
    LGDT      [CS:4F70]  ;FF 0F 2C A9 01 00  这就是4F70的内容了     
    LIDT      [CS:4F76]  ;FF 07 2C A1 01 00  这就是4F76的内容了 
        MOV      EAX,[CS:4F44]  ;00 80 02 00    这就是4F44的内容了   
    MOV      CR3,EAX      ;CR3被置为00028000  高20位就是页目录物理基
                              ;址,且允许页目录回写式高速缓存。         
    MOV      EAX,CR0                   
    OR        EAX,80000001    ;分页的保护模式
    MOV      CR0,EAX                   
    JMP FAR  0800:24D9      ;跳入保护模式罗
    MOV      AX,0808           
    MOV      SS,AX             
    MOVZX    ESP,SP             
    MOV      DS,AX           
    MOV      ES,AX         
    MOV      FS,AX           
    MOV      GS,AX         
    RET                     

    PUSH      00           
    POPF                 
    MOV      AX,0808     
    MOV      DS,AX           
    MOV      ES,AX       
    MOV      SS,AX     
    MOV      FS,AX     
    MOV      GS,AX   
    MOV      EAX,CR0   
    AND      EAX,7FFFFFFE     
    MOV      CR0,EAX    ;在回到实模式之前,修改CR0   
    SUB      EAX,EAX       
    MOV      CR3,EAX    ;清掉页目录地址     
    JMP FAR  16A7:2512  ;回到实模式       
:2512  LGDT      [CS:4F86]       
    LIDT      [CS:4F80]       
    MOV      AX,CS           
    MOV      SS,AX             
    MOV      DS,AX             
    MOV      ES,AX             
    MOV      FS,AX             
    MOV      GS,AX           
    MOVZX    ESP,SP         
        .
        .
;让我们看看1A92:000C是些甚么东东,呵呵下面就是GDT表了(8位一组)
00 00 00 00 00 00 00 00-FF FF 70 6A 01 9E 00 00  ........pj.?.
FF FF 70 6A 01 9E 00 00-FF FF 70 6A 01 9E 00 00  pj.?.pj.?.
FF FF 70 6A 01 9E 00 00-FF FF 70 6A 01 9E 00 00  pj.?.pj.?.
FF FF 70 6A 01 9E 00 00-FF FF 70 6A 01 9E 00 00  pj.?.pj.?.
FF FF 70 6A 01 9E 00 00-FF FF 70 6A 01 9E 00 00  pj.?.pj.?.
.
.
.

;再让我们看看1A12:000C的IDT表(8位一组)
97 1F 08 00 00 8E 00 00-97 1F 10 00 00 8F 00 00  ?...?.?...?.
97 1F 18 00 00 8E 00 00-97 1F 20 00 00 8F 00 00  ?...?.? ..?.
97 1F 28 00 00 8E 00 00-97 1F 30 00 00 8E 00 00  ?(..?.?0..?.
97 1F 38 00 00 8E 00 00-97 1F 40 00 00 8E 00 00  ?8..?.?@..?.
D2 1D 40 00 00 8E 00 00-D2 1D 48 00 00 8E 00 00  ?@..?.?H..?.
.
.
.
;在这里我并没有讲怎样破解瑞星DOS版,毕竟它还是给我们带来了不少方便,留点面子吧。对于瑞星,我觉得
;他的保护是越来越强,但加密盘做的简直是在放水嘛,我8.0写的内存解密程序现在都还可以用。真搞不懂。
;还有上面讲的只是保护模式的最简单的进出,要想写详细,一本书都有的写,而且我也没哪个水平。

;如果你觉得现在有劲没处使,那就搞定下面的这个吧,我举双手支持。
;下面看看老汪那牛皮哄哄的KV3000 G+版
;注:某些跳转指令是不正确的,因我用了其他的方法回写反汇编文本,不过重要的偏移
;    我已在前面标明。
:CC84  MOV      BX,3B00                  BB003B
        MOV      CX,0001                  B90100         
        MOV      DX,0000                  BA0000         
        MOV      BP,0005                  BD0500         
        MOV      AX,0201                  B80102         
:CC93  INT      13                      CD13  ;我在此处将IP值改为CFCA
        JAE      0128                    7315           
        .
        .
        CMP      [WORD BX+0013],0960      817F136009 ;此处判断软盘类型
        JNE      0161                    7511      ;不是3.5就跳   
        CMP      [BYTE D4C9],24          803EC9D424     
        JA        015E                    7707           
        INC      [BYTE 80AA]              FE06AA80       
        JMP      0203                    E9A500         
        JMP      F0FD                    E99CEF         
        MOV      [BYTE D3AF],00          C606AFD300     
        CMP      [BYTE D4C9],44          803EC9D444     
        JBE      0181                    7614           
        CMP      [BYTE D4C9],C5          803EC9D4C5     
        JNE      0177                    7503           
        JMP      0203                    E98C00         
        CMP      [BYTE D4C9],55          803EC9D455     
        JBE      0181                    7603           
        JMP      0203                    E98200         
        MOV      AX,F000                  B800F0         
        MOV      ES,AX                    8EC0           
        CMP      [WORD ES:FF80],779A      26813E80FF9A77 
        JNE      01A4                    7515           
        .
        .
        .
        CMP      [WORD ES:FFEE],5141      26813EEEFF4151
        JNE      044C                    7506           
:CFCA  CALL FAR  3B6A:884D                9A4D886A3B ;就是这里了,从此处
:CFCF  RET                                C3        ;全速执行,就...   
;看见程序界面了,呵呵有改进,用了直接写屏来写汉字。只是操作起来还是那么麻烦。
;就这样完了,都没什么搞头,比KV300还不如,会不会有陷阱哦。扫一下我硬盘里的
;病毒样本,呵呵,还真让他给找到了。
;上面是跟踪时改的,我们要对付它有两个办法:
;1. 脱壳。这家伙用了KeyMaker 3.0加外壳,网上有脱它的程序,可以找一个来用。
;之后要改的可不只是上面的那一点了,还要避开他的自我检测部分,很麻烦就是了。
;以前解他的KV300时就改了好些地方。而且,它每查一个文件都要检查(两次)他那
;WJM有没有被修改,这简直是浪费资源嘛,我一时火起,把那个地方贴上我的大名,其
;他地方用大写的X填写,一大串XXXXXXXX看起来象什么,哈哈哈。
;2.就是内存解密啦,最方便,各位老大有空就写一个吧。

还有我上次那个用DEBUG脱VRV2000的那个教程,在回写VRV.DAT文件之前的重定位指令要NOP掉,上次让我
写掉了,SORRY(我做什么都尽量完美,所以在这个地方多个嘴,给它打个补丁)。另外,我看见其他地方COPY
了去,只是该换行的地方没有换,搞的我都有些看不懂。
有兴趣的朋友到GFH的网页去看看吧。(兄弟,我又在帮你打广告了,怎么谢我?)
好累,休息一下,明天准备过我的21岁小寿了。过几天还的考试,唉,有点烦....
                                                    2000.5.8    飞刀浪子  留