欢迎来到 嗅灵易学

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

深圳腾讯[第一阶段 第四题]脱壳脚本

深圳腾讯[第一阶段 第四题]脱壳脚本

工作比较忙,利用业余时间写出来的脱壳脚本。脚本包括了修复该程序所需的所有功能,比如修复无效指令、修复section表等等 功能。不过这个脚本要运行比较久
使用了单链表~~
附近是修复脚本,这两个脚本可以整成一个  到达OEP的脚本如下:
bpcnd 0065350E, "ECX==0" // 4
run
bpcnd 00656D9D, "ECX==0" // 5
run

bp 00656DF4
mov  eax, 0B7
run

bp 00656E3D        // F1              int1
mov eip, 00656E5C  //

bpcnd 00655D2E, "ECX==0" // 第二个程序1
run

//pause

bpcnd 00653A6B, "ECX==0" // 第二个程序3
run

//pause

bpcnd 00655F31, "ECX==0" // 第二个程序4
run

bp 00655F92    // 一步到位
esto
bc 00655F92

//pause
//00655B2A    0958 20         or      dword ptr [eax+20], ebx          ; 这里抹掉了映像长度
fill 00655B2A, 3, 90

bpcnd 006567FA, "ECX==0" // 第二个程序8
run

//pause    //4001E0
fill 0065598B, 16, 90
fill 006559B4, D, 90
fill 006559C7, 9, 90

bp 00655A05        // 下断 shift + F9
esto
bc 00655A05

bpcnd 00656277, "ECX==0" // 第二个程序11
run

bpcnd 0065463A, "ECX==0" // 第二个程序12
run

bpcnd 0065775C, "ECX==0" // 第二个程序13  下一条就是F1  int1了
run

bp 00657765        // F1              int1                                     ; 这里EIP重定向+2B = 657791
mov eip, 657791
bc 00657765    

//006548B5    8813              mov     byte ptr [ebx], dl                         ; DllName 清零 NOP
fill 006548B5, 2, 90
//00653F38    8327 00           and     dword ptr [edi], 0                         ; Clear HashCode NOP it
fill 00653F38, 3, 90

//0065413E    FE4F FF            dec     byte ptr [edi-1]
//00654141    83C7 04            add     edi, 4
//00654144    2BC7               sub     eax, edi
//00654146    8947 FC            mov     dword ptr [edi-4], eax
fill 0065413E, B, 90
//0065418A    8907               mov     dword ptr [edi], eax      ;  这里填充API地址
//            8902                  mov     dword ptr [edx], eax    ; Modify
//006549B7 
//fill 0065418A, 2, 90
fill 0065418B, 1, 02
//00654A83    8366 10 00         and     dword ptr [esi+10], 0
//00654A87   /74 01              je      short 00654A8A
//这里需要再NOP3个字节
fill 00654A83, 7, 90
//00654C59    F3:A4              rep     movs byte ptr es:[edi], byte ptr [esi]                ; copy to 4001E0  NOP it
fill 00654C59, 2, 90

//006549B7    0FBA67 FF 07    bt      dword ptr [edi-1], 7             ; 这里做是否Hook的判断 可以改为clc  F8
fill 006549B7, 1, F8
fill 006549B8, 4, 90
//pause 
bp 00654CB5 
run

mov  eip, 0041DD00
mov ecx, 0041DD00
mov [ecx], #558BEC6AFF6868DB5B0068182D420064A100000000506489250000000083C4A45356578965E8FF1521816500A3A4A75E00A1A4A75E00C1E80825FF000000A3B0A75E008B0DA4A75E0081E1FF000000#
//0040013C    00040000    DD 00000400          ;  SizeOfHeaders = 400 (1024.)
mov [40013C], #E0010000#
mov [400168], #00E01E00#
mov [40016C], #04010000#
mov [5EE0FC], #00000000#
mov [5EE100], #00000000#

ret

上传的附件 ProcessCodeFinal.txt

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

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

0 0 0 举报
复制成功