• 手脱tElock 0.98b1 -> tE!


    声明:

    只为纪录自己的脱壳历程,高手勿喷
    

    第一种:两次内存法

    注:

    ①这是在win7x32系统上运行的脱壳,所以可能地址不同
    ②修复的时候用等级三修复,最后修复不了的剪切掉然后转存合一正常运行,已测试
    

    1.载入OEP,一上来就是个达跳转,我也是醉了

    004C6BD6 >^E9 25E4FFFF     jmp 第八九课.004C5000       //入口
    004C6BDB    0000            add byte ptr ds:[eax],al
    004C6BDD    006455 61       add byte ptr ss:[ebp+edx*2+0x61],ah
    004C6BE1    8D1E            lea ebx,dword ptr ds:[esi]
    004C6BE3    6C              ins byte ptr es:[edi],dx
     

    2.Ait+M打开内存窗口在0047D000地址下断点,然后shift+F9运行,界面应该停在这个位置上

    004C5D25    AC              lods byte ptr ds:[esi]          //落脚点
    004C5D26    0BC0            or eax,eax
    004C5D28    02C1            add al,cl
    004C5D2A    02C1            add al,cl
    004C5D2C    85FF            test edi,edi                      
    004C5D2E    0AC9            or cl,cl
     

    3.接着打开内存窗口在00401000地址下断,然后shift+F9运行,直接到达OEP

    0045D4F6    55              push ebp        //这里就是OEP了
    0045D4F7    8BEC            mov ebp,esp
    0045D4F9    6A FF           push -0x1
    0045D4FB    68 28704800     push 第八九课.00487028
    0045D500    68 D4024600     push 第八九课.004602D4
    0045D505    64:A1 00000000  mov eax,dword ptr fs:[0]
    0045D50B    50              push eax                           
    0045D50C    64:8925 0000000>mov dword ptr fs:[0],esp
    0045D513    83EC 58         sub esp,0x58
     

    4.修复脱壳

    第二种:最后一次异常法

    1.忽略所有异常shift+F916次,来到这个位置

    004C6833  ^73 DC           jnb short 第八九课.004C6811 //入口
    004C6835    CD20 64678F06   vxdcall 0x68F6764
    004C683B    0000            add byte ptr ds:[eax],al
    004C683D    58              pop eax                                 
    004C683E    61              popad
     

    2.右下角SE处理句,跟随地址004C6817,来到这个位置

    004C6817    8B6424 08       mov esp,dword ptr ss:[esp+0x8]      //落脚点
    004C681B    EB 1A           jmp short 第八九课.004C6837
    004C681D    64:67:FF36 0000 push dword ptr fs:[0]
    004C6823    64:67:8926 0000 mov dword ptr fs:[0],esp
    004C6829    9C              pushfd
     

    3.然后在004C6817位置F2,SHIFT+F9,F2

    4.然后F8,58次往下跟(注意带数字的call全部F7)一直到这个位置,他是个向上跳转,在这个跳转的下一行F2,shift+F9,F2,

    004C68DB  ^79 BE           jns short 第八九课.004C689B   //下一行F2,SHIFT+F9,F2
    004C68DD    EB 01           jmp short 第八九课.004C68E0
    004C68DF    66:C1E8 DF      shr ax,0xDF
    004C68E3    61              popad
    004C68E4    F9              stc
     

    5.然后一直F8,38次就可以到达OEP

    0045D4F6    55              push ebp        //OEP位置
    0045D4F7    8BEC            mov ebp,esp
    0045D4F9    6A FF           push -0x1
    0045D4FB    68 28704800     push 第八九课.00487028
    0045D500    68 D4024600     push 第八九课.004602D4
    0045D505    64:A1 00000000  mov eax,dword ptr fs:[0]
    0045D50B    50              push eax
    0045D50C    64:8925 0000000>mov dword ptr fs:[0],esp
    0045D513    83EC 58         sub esp,0x58
     

    6.修复脱壳

  • 相关阅读:
    WorkerMan源码分析(resetStd方法,PHP中STDIN, STDOUT, STDERR的重定向)
    linux:nohup 不生成 nohup.out的方法
    PHP系统编程--PHP进程信号处理(转)
    shell脚本实例总结
    saltstack 迭代项目到客户端并结合jenkins自动发布多台服务器
    自动化运维工具 SaltStack 搭建
    coding利用Webhook实现Push代码后的jenkins自动构建
    基于jquery地图特效全国网点查看代码
    基于jquery判断浏览器版本过低代码
    EntityFramework Model有外键时,Json提示循环引用 解决方法
  • 原文地址:https://www.cnblogs.com/JianXu/p/5158407.html
Copyright © 2020-2023  润新知