• 标 题:bjfnt v1.3脱壳手记 (3千字)
  • 作 者:flyfancy
  • 时 间:2002-7-14 20:26:30
  • 链 接:http://bbs.pediy.com

bjfnt v1.3脱壳手记

这几天好像都看见有人问bjfnt 1.2的壳怎么脱,所以写了这篇文章,因为最新的是1.3版,所以我在这里只讲1.3的脱壳,我想1.2应该比1.3简单吧.当然这里有高手无数,只是他们没有时间写点东西出来,我就只有代劳了.

真的是花指令无数,我的总的经验就是一直F8,直到看到某个循环过不去了,然后停下来分析,在后面还有个大循环,我在里面转了10分钟才转出来,汗...,再次提醒各位,在这里面千万不要用F10,因为都是花指令,转眼间就跳出去了,我晕~~~~~~~

这里用的是已加壳的Notepad.exe
程序下载地址:http://flyfancy.my.west163.com/n.exe

下面开讲:
0187:0040D07D 75EA            JNZ      0040D069            (JUMP)        //g 0040D07F
0187:0040D07F EB02            JMP      SHORT 0040D083
0187:0040D081 CD20            INT      20
0187:0040D083 D9E0            FCHS   
0187:0040D085 6E              OUTSB 
......(代表漫长的F8)
0187:0040D15E 75E8            JNZ      0040D148            (JUMP)        //g 0040D160
0187:0040D160 EB03            JMP      SHORT 0040D165
0187:0040D162 CD20            INT      20
0187:0040D164 EBEB            JMP      SHORT 0040D151
0187:0040D166 01EB            ADD      EBX,EBP
0187:0040D168 53              PUSH    EBX
0187:0040D169 8B6047          MOV      ESP,[EAX+47]
0187:0040D16C 47              INC      EDI
0187:0040D16D 674C            DEC      ESP
......
0187:0040D1F1 E2D6            LOOP    0040D1C9                //g 0040D1F3
0187:0040D1F3 EB03            JMP      SHORT 0040D1F8
......
0187:0040D2DE 75DC            JNZ      0040D2BC            (JUMP)        //g 0040D2E0
0187:0040D2E0 EB02            JMP      SHORT 0040D2E4
0187:0040D2E2 CD20            INT      20
......
0187:0040D41B 0F852D040000    JNZ      NEAR 0040D84E            (NO JUMP)    //g 0040D84E
0187:0040D421 EB04            JMP      SHORT 0040D427
0187:0040D423 CD20            INT      20
0187:0040D425 EB02            JMP      SHORT 0040D429
0187:0040D427 EB02            JMP      SHORT 0040D42B
0187:0040D429 CD20            INT      20
......
0187:0040D888 754F            JNZ      0040D8D9            (NO JUMP)        //哈哈,养成习惯了,我g 0040D8D9结果就跳出去了,千万不要被误导啊!
0187:0040D88A EB02            JMP      SHORT 0040D88E
......
0187:0040D8B8 E2FB            LOOP    0040D8B5                //g 0040D8BA
0187:0040D8BA EB04            JMP      SHORT 0040D8C0
0187:0040D8BC CD20            INT      20
......
0187:0040D99B E2F1            LOOP    0040D98E                //g 0040D99D
0187:0040D99D EB02            JMP      SHORT 0040D9A1
......
0187:0040D9FD 75EA            JNZ      0040D9E9            (JUMP)        //g 0040D9FF
0187:0040D9FF EB02            JMP      SHORT 0040DA03
......
0187:0040DA30 75F0            JNZ      0040DA22            (JUMP)        //0040DA32
0187:0040DA32 EB02            JMP      SHORT 0040DA36
0187:0040DA34 C785E80300000072+MOV      DWORD [EBP+03E8],04EB7200
0187:0040DA3E 58              POP      EAX
......
0187:0040DA47 EB03            JMP      SHORT 0040DA4C
0187:0040DA49 CD20            INT      20
0187:0040DA4B C7              DB      C7
0187:0040DA4C 9D              POPF   
0187:0040DA4D EB03            JMP      SHORT 0040DA52
0187:0040DA4F CD20            INT      20
0187:0040DA51 C7              DB      C7
0187:0040DA52 E800000000      CALL    0040DA57
0187:0040DA57 C3              RET                        //这里就返回OEP了
0187:0040DA58 EB03            JMP      SHORT 0040DA5D
0187:0040DA5A CD20            INT      20