欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

看了zombieys的《脱Flashfxp 1.4的壳》一文,也下个FlashFXP v1.4练练。 (6千字)

看了zombieys的《脱Flashfxp 1.4的壳》一文,也下个FlashFXP v1.4练练。 (6千字)

FlashFXP v1.4
http://www.flashfxp.com
scouting... C:\Program Files\FlashFXP\FlashFXP.exe - 756224 bytes big
Entry Point    :00176000    Image Base    :00400000
Base of Data    :0012C000    Size of Image    :00178000
Tools used :
    Procdump
    Softice
    icedump + iceload
    看了zombieys的《脱Flashfxp 1.4的壳》一文,也下个FlashFXP v1.4练练。
    还好比较简单,大家也可找来练练手脚。
    仅供新手参考。
一,用tElock保护的FlashFXP中的反跟踪代码。
用bpint 3切入
017F:0057655E  8B642408            MOV      ESP,[ESP+08]        <-(1)-SEH proc address
017F:00576562  8B6C2408            MOV      EBP,[ESP+08]
017F:00576566  8D85FE040000        LEA      EAX,[EBP+000004FE]
017F:0057656C  50                  PUSH      EAX
017F:0057656D  C3                  RET                    <-(1)-回到017F:0057657B
017F:0057656E  2BC0                SUB      EAX,EAX
017F:00576570  7402                JZ        00576574
017F:00576572  CD20                INT      20 VXDJmp A7E9,10CC
017F:00576574  CC                  INT      3                <-(1)-bpint 3切入
017F:00576575  90                  NOP
017F:00576576  E9A7000000          JMP      00576622            <--退出处理
017F:0057657B  8D8510050000        LEA      EAX,[EBP+00000510]
017F:00576581  89442404            MOV      [ESP+04],EAX
017F:00576585  646789260000        MOV      FS:[0000],ESP
017F:0057658B  EB10                JMP      0057659D            <-(1)-可按F7直接运行到此处
017F:0057658D  8B642408            MOV      ESP,[ESP+08]        <-(2)-SEH proc address
017F:00576591  8B6C2408            MOV      EBP,[ESP+08]
017F:00576595  8D852F050000        LEA      EAX,[EBP+0000052F]
017F:0057659B  50                  PUSH      EAX
017F:0057659C  C3                  RET                    <-(2)-回到017F:005765AC
017F:0057659D  2BDB                SUB      EBX,EBX
017F:0057659F  8BD3                MOV      EDX,EBX
017F:005765A1  B872472388          MOV      EAX,88234772
017F:005765A6  F7F3                DIV      EBX            <-(2)-除0
017F:005765A8  85D2                TEST      EDX,EDX
017F:005765AA  7476                JZ        00576622            <--退出处理
017F:005765AC  8D8541050000        LEA      EAX,[EBP+00000541]
017F:005765B2  89442404            MOV      [ESP+04],EAX
017F:005765B6  646789260000        MOV      FS:[0000],ESP
017F:005765BC  EB10                JMP      005765CE            <-(2)-可按F7直接运行到此处
017F:005765BE  8B642408            MOV      ESP,[ESP+08]
017F:005765C2  8B6C2408            MOV      EBP,[ESP+08]
017F:005765C6  8D855F050000        LEA      EAX,[EBP+0000055F]
017F:005765CC  50                  PUSH      EAX
017F:005765CD  C3                  RET
017F:005765CE  66B80043            MOV      AX,4300            <-(3)-Method of detection of the WinICE handler in the int68h (V86)
017F:005765D2  CD68                INT      68
017F:005765D4  66057B0C            ADD      AX,0C7B
017F:005765D8  6648                DEC      AX                <-(3)-相当于cmp    ax,0F386h
017F:005765DA  7446                JZ        00576622            <-(3)-是00那么SoftICE_Detected,r fl z
017F:005765DC  8D8571050000        LEA      EAX,[EBP+00000571]
017F:005765E2  89442404            MOV      [ESP+04],EAX
017F:005765E6  646789260000        MOV      FS:[0000],ESP
017F:005765EC  EB10                JMP      005765FE
017F:005765EE  8B642408            MOV      ESP,[ESP+08]
017F:005765F2  8B6C2408            MOV      EBP,[ESP+08]
017F:005765F6  8D8599050000        LEA      EAX,[EBP+00000599]
017F:005765FC  50                  PUSH      EAX
017F:005765FD  C3                  RET
017F:005765FE  EB01                JMP      00576601            <--花指令
017F:00576601  33DB                XOR      EBX,EBX            
017F:00576603  8BC3                MOV      EAX,EBX            <-(4)-比较善良,没想超度你
017F:00576605  66BE4746            MOV      SI,4647            <-(4)-magic values
017F:00576609  66BF4D4A            MOV      DI,4A4D            <-(4)-magic values
017F:0057660D  CC                  INT      3                <-(4)-常用的检测方式
017F:0057660E  F8                  CLC
017F:0057660F  6681FE4746          CMP      SI,4647            <-(4)--SI=4647h则SoftICE_Detected
017F:00576614  750C                JNZ      00576622            <-(4)-存在SoftICE则退出,r fl z
017F:00576616  64678F060000        POP      DWORD PTR FS:[0000]
017F:0057661C  83C404              ADD      ESP,04
017F:0057661F  5D                  POP      EBP
017F:00576620  EB16                JMP      00576638
017F:00576622  64678F060000        POP      DWORD PTR FS:[0000]
017F:00576628  83C404              ADD      ESP,04
017F:0057662B  5D                  POP      EBP
017F:0057662C  81EDE59B4000        SUB      EBP,00409BE5
017F:00576632  E946090000          JMP      00576F7D
017F:00576637  C3                  RET
017F:00576638  8BDD                MOV      EBX,EBP
二,用tElock保护的FlashFXP脱壳
    跳过tElock保护的反跟踪代码。
    tELock找OEP很简单:bpx VirtualProtectEx中断后,稍微跟几步看见jmp [esp-30],就跳到OEP了。
    /dump 400000 178000 c:\FFXP.exe
    修改Entry Point:0052B8B0-00400000,以及Number of Sections为原来的数值。
    以下是破坏Import Table的特征代码:
017F:00576C16  8B95BEAF4000        MOV      EDX,[EBP+0040AFBE]
017F:00576C1C  8BB5AEAF4000        MOV      ESI,[EBP+0040AFAE]
017F:00576C22  85F6                TEST      ESI,ESI                <--首次调用时的ESI就是Import Tabler的RVA
017F:00576C24  0F849D030000        JZ        00576FC7
017F:00576C2A  03F2                ADD      ESI,EDX                <-- EDX=00400000
017F:00576C2C  83A5AAB0400000      AND      DWORD PTR [EBP+0040B0AA],00
017F:00576C33  8B460C              MOV      EAX,[ESI+0C]
017F:00576C36  83660C00            AND      DWORD PTR [ESI+0C],00        <--开始把IMAGE_DATA_DIRECTORY中的Name清0
017F:00576C3A  85C0                TEST      EAX,EAX
017F:00576C3C  0F8485030000        JZ        00576FC7
    在清零之前可DUMP出完整的Import Table,然后用Procdump导入Import Table,再修改Import Table的RVA值为相应的值(133000)。
完工。
    有个简便方法:
先对付反跟踪代码,再bpx VirtualProtectEx中断,F12返回。
找特征代码,记下地址。(s 400000 l 00178000 8B 46 0C 83 66 0C 00 85 C0)下次g到此处DUMP出完整的Import Table
找到OEP,并DUMP,最后作修正。
    以上方法在tElock8.0、9.0上试验通过。

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功