外挂脱壳示例一

什么是游戏脱机外挂以及脱机外挂的开发成本多少钱 根据业内的经验来看,开发一个完整的游戏脱机外挂程序,因为涉及到的难度有脱壳、算法逆向、加解密算法破解、通信协议分析、代码编写等一连串的环节,整个流程做下来耗时是很久的。并且很可能是会涉及到团队协作,因为一个人擅长的技术领域是有限的,因此脱机外挂的开发过程,多人分工或者拆分任务外包出去是常见的开发模式。总体而言,开发费用至少是5W起步的,对于工作室而言,这是可以接受的成本,对于个人来说自然是贵不可言了。那为什么市面上还存在一些类似一千块钱、几百块钱之类的脱机外挂程序呢? 阅读详情

Hying旧版壳的简单脱壳
【目     标】:天堂xxxx(因为是外挂,所以不写全名)
【工     具】:Olydbg1.1(diy版)、LORDPE、ImportREC1.6F
【任     务】:简单的脱一下目标的壳
【操作平台】:WinXP sp2
【作     者】:loveboom[DFCG][FCG][US]
【相关链接】: 自己去上网搜搜
【简要说明】: 这个一个很旧的Hying的壳了,现在脱的话就非常简单了,不过看过新版的朋友就知道,新版BT很多,不过也不是那么神秘的:-)。介于关于他的壳的信息比较少,再者FLY老大说想看看大概的(他没有时间看Hying的壳),所以我就脸头厚点,写一个大概的。
【详细过程】:
用peid直接看的话显示是的yc的壳,不过我之前接触过几个hying的壳,因此我用扩展方式可以看到是PELOCK ->Hying *,知道是什么壳就好办了,之前在大牛hexer的指导下跟了一个新版的壳,所以这个旧版相对来说很简单的.好了入主题先.
设置忽略全部异常,去除调试标志.
载入在ep处.
005D4DA8 >  60              PUSHAD                                   ; ep入口是伪yoda crypt的
005D4DA9    E8 00000000     CALL 005D4DAE
005D4DAE    5D              POP EBP
载入后直接在:code段下f2断点.
Memory map, item 14
 Address=00401000
 Size=001AC000 (1753088.)
 Owner=L2Walker 00400000
 Section=
 Contains=code
 Type=Imag 01001002
 Access=R
 Initial access=RWE
下断后,f9运行。这样中断在这里:
00373670    AC              LODS BYTE PTR DS:[ESI]                   ; 中断在这里
00373671    D2C8            ROR AL,CL
00373673    32C1            XOR AL,CL
00373675    04 66           ADD AL,66
00373677    32C5            XOR AL,CH
00373679    02C6            ADD AL,DH
0037367B    2AC2            SUB AL,DL
0037367D    02C1            ADD AL,CL
0037367F    2AC5            SUB AL,CH
00373681    32C2            XOR AL,DL
00373683    04 23           ADD AL,23
00373685    32C6            XOR AL,DH
00373687    F6D0            NOT AL
00373689    D2C8            ROR AL,CL
0037368B    D3CA            ROR EDX,CL
0037368D    AA              STOS BYTE PTR ES:[EDI]
0037368E    49              DEC ECX
0037368F    0BC9            OR ECX,ECX
00373691  ^ 75 DD           JNZ SHORT 00373670
00373693    53              PUSH EBX
00373694    6A 04           PUSH 4
00373696    68 00100000     PUSH 1000
0037369B    FF342B          PUSH DWORD PTR DS:[EBX+EBP]
0037369E    6A 00           PUSH 0
003736A0    8D85 001D4000   LEA EAX,DWORD PTR SS:[EBP+401D00]
003736A6    50              PUSH EAX
003736A7    8B85 33374000   MOV EAX,DWORD PTR SS:[EBP+403733]
003736AD    E9 010E0000     JMP 003744B3
003736B2  - E9 897C24EC     JMP EC5BB340
003736B7    897424 E8       MOV DWORD PTR SS:[ESP-18],ESI
003736BB    FF85 47374000   INC DWORD PTR SS:[EBP+403747]
003736C1    8B9D 6B374000   MOV EBX,DWORD PTR SS:[EBP+40376B]
003736C7    83FB 01         CMP EBX,1
003736CA    75 0E           JNZ SHORT 003736DA
003736CC    61              POPAD
003736CD    8B4424 CC       MOV EAX,DWORD PTR SS:[ESP-34]
003736D1    8D78 02         LEA EDI,DWORD PTR DS:[EAX+2]
003736D4    55              PUSH EBP
003736D5    8BEC            MOV EBP,ESP
003736D7    50              PUSH EAX
003736D8    EB 20           JMP SHORT 003736FA
003736DA    83FB 02         CMP EBX,2
003736DD    75 15           JNZ SHORT 003736F4
003736DF    61              POPAD
003736E0    8B4424 C8       MOV EAX,DWORD PTR SS:[ESP-38]
003736E4    FFB0 6F374000   PUSH DWORD PTR DS:[EAX+40376F]
003736EA    8B4424 D0       MOV EAX,DWORD PTR SS:[ESP-30]
003736EE    50              PUSH EAX
003736EF    8D78 02         LEA EDI,DWORD PTR DS:[EAX+2]
003736F2    EB 06           JMP SHORT 003736FA
003736F4    61              POPAD
003736F5    8B4424 CC       MOV EAX,DWORD PTR SS:[ESP-34]
003736F9    50              PUSH EAX                                 ; 这里跳去oep
003736FA    C3              RETN
断下后经过几个跟踪发003736f9处就是push OEP .继续往下找,找到这里:
003737D3    87E6            XCHG ESI,ESP
003737D5    B9 7F0B0000     MOV ECX,0B7F
003737DA    58              POP EAX                                  ; 这里循环解压下面的代码
003737DB    F6D0            NOT AL
003737DD    50              PUSH EAX
003737DE    44              INC ESP
003737DF  ^ E2 F9           LOOPD SHORT 003737DA
003737E1    87E6            XCHG ESI,ESP                             ; 所以我们直接在这里下f4
003737E3    6A 04           PUSH 4
003737E5    68 00100000     PUSH 1000
003737EA    68 00200000     PUSH 2000
003737EF    6A 00           PUSH 0
003737F1    FF95 33374000   CALL DWORD PTR SS:[EBP+403733]           ; VirtualAlloc
003737F7    8985 3C3D4000   MOV DWORD PTR SS:[EBP+403D3C],EAX
003737FD    C785 403D4000 0>MOV DWORD PTR SS:[EBP+403D40],0
00373807    74 7A           JE SHORT 00373883
00373809    9C              PUSHFD
0037380A    C8 BFFFF4       ENTER 0FFBF,0F4
0037380E    3F              AAS
0037380F    F0:7A 42        LOCK JPE SHORT 00373854                  ; LOCK prefix is not allowed
00373812    FFFF            ???                                      ; Unknown command
直接F4到3737E1处后看看代码已经解压了,现在好看很多.
下面的部分跟过hying的壳的朋友就知道壳是通过.取出API函数先判断代码是否要抽API代码,如果要的话就抽部分代码到壳申请的指定地址里实现
push api
ret
的方式,如果没要抽代码的就直接push ret的方式。
所以我现在要找到跳去api的代码,这个很容易,看看代码里有很多这样的代码:
0037383B    8B85 2B374000   MOV EAX,DWORD PTR SS:[EBP+40372B]
00373841    E9 6D0C0000     JMP 003744B3                             ; 这里一个
00373846    81340B C0751E56 XOR DWORD PTR DS:[EBX+ECX],561E75C0
0037384D    8D85 661E4000   LEA EAX,DWORD PTR SS:[EBP+401E66]
00373853    50              PUSH EAX
00373854    8B85 2F374000   MOV EAX,DWORD PTR SS:[EBP+40372F]
0037385A    E9 540C0000     JMP 003744B3                             ; 这里又一个
所以可以判断003744b3处是处理API的.进去看看:
003744B3    50              PUSH EAX
003744B4    8B85 383D4000   MOV EAX,DWORD PTR SS:[EBP+403D38]
003744BA    50              PUSH EAX
003744BB    E8 08000000     CALL 003744C8
003744C0    8B85 383D4000   MOV EAX,DWORD PTR SS:[EBP+403D38]
003744C6    FFE0            JMP EAX                                  ; 跳去push api ret的地址
003744C8    60              PUSHAD                                   ; 这里开始处理API
003744C9    8B7C24 24       MOV EDI,DWORD PTR SS:[ESP+24]
003744CD    8B7424 28       MOV ESI,DWORD PTR SS:[ESP+28]
003744D1    66:8B06         MOV AX,WORD PTR DS:[ESI]
003744D4    3C 50           CMP AL,50
003744D6    72 0A           JB SHORT 003744E2                        ; ******
003744D8    3C 57           CMP AL,57                                ; 开始判断要不要特别"照顾"
003744DA    77 06           JA SHORT 003744E2
003744DC    8807            MOV BYTE PTR DS:[EDI],AL
003744DE    46              INC ESI
003744DF    47              INC EDI
……
003745F2   /E9 AD120000     JMP 003758A4
003745F7   |66:3D CD03      CMP AX,3CD
003745FB   |75 05           JNZ SHORT 00374602
003745FD   |E9 A2120000     JMP 003758A4
00374602   |C607 68         MOV BYTE PTR DS:[EDI],68                 ; 这里变成push api ret的方式
00374605   |8977 01         MOV DWORD PTR DS:[EDI+1],ESI
00374608   |C647 05 C3      MOV BYTE PTR DS:[EDI+5],0C3
0037460C   |83C7 06         ADD EDI,6
0037460F   |897C24 FC       MOV DWORD PTR SS:[ESP-4],EDI
00374613   |61              POPAD
00374614   |8B4424 DC       MOV EAX,DWORD PTR SS:[ESP-24]
00374618   |C2 0800         RETN 8
分析完代码后我们就要动“手术”了,在003744d6处改成:

003744D6   /E9 27010000     JMP 00374602   ;这里跳过就直接成了
push api
retn
的方式防止壳抽代码
F4到了003737E1后,几个F8就到了处理IAT处了:
003738D8    0395 7F374000   ADD EDX,DWORD PTR SS:[EBP+40377F]
003738DE    8B3A            MOV EDI,DWORD PTR DS:[EDX]
003738E0    0BFF            OR EDI,EDI                               ; 判断有没有处理完iat
003738E2    75 05           JNZ SHORT 003738E9
003738E4    E9 53050000     JMP 00373E3C                             ; 处理完iat就跳
003738E9    03BD 37374000   ADD EDI,DWORD PTR SS:[EBP+403737]
003738EF    83C2 05         ADD EDX,5
003738F2    8BF2            MOV ESI,EDX
003738F4    56              PUSH ESI
003738F5    8D85 0E1F4000   LEA EAX,DWORD PTR SS:[EBP+401F0E]
003738FB    50              PUSH EAX
003738FC    8B85 2B374000   MOV EAX,DWORD PTR SS:[EBP+40372B]        ; GetModuleHandleA
00373902    E9 AC0B0000     JMP 003744B3
00373907    90              NOP
00373908    90              NOP
00373909    0BC0            OR EAX,EAX
0037390B    75 1E           JNZ SHORT 0037392B                       ; 判断有没有载入DLL如果没有就先LoadLibrary载入DLL
0037390D    56              PUSH ESI
0037390E    8D85 271F4000   LEA EAX,DWORD PTR SS:[EBP+401F27]
00373914    50              PUSH EAX
00373915    8B85 2F374000   MOV EAX,DWORD PTR SS:[EBP+40372F]
0037391B    E9 930B0000     JMP 003744B3                             ; LoadLibraryA
00373920    FF15 0BC07505   CALL DWORD PTR DS:[575C00B]
00373926    E9 9D0D0000     JMP 003746C8
0037392B    0FB64E FF       MOVZX ECX,BYTE PTR DS:[ESI-1]
0037392F    03F1            ADD ESI,ECX
00373931    8BD6            MOV EDX,ESI
00373933    8BF0            MOV ESI,EAX
00373935    42              INC EDX
00373936    8B0A            MOV ECX,DWORD PTR DS:[EDX]
00373938    81E1 00000080   AND ECX,80000000
0037393E    0BC9            OR ECX,ECX
00373940    0F85 87000000   JNZ 003739CD                            
00373946    8B0A            MOV ECX,DWORD PTR DS:[EDX]
……
003739CD    8B0A            MOV ECX,DWORD PTR DS:[EDX]
003739CF    81E1 FFFFFF7F   AND ECX,7FFFFFFF
003739D5    51              PUSH ECX
003739D6    52              PUSH EDX
003739D7    C1E1 05         SHL ECX,5
003739DA    6A 04           PUSH 4
003739DC    68 00100000     PUSH 1000
003739E1    51              PUSH ECX
003739E2    6A 00           PUSH 0
003739E4    8D85 FC1F4000   LEA EAX,DWORD PTR SS:[EBP+401FFC]
003739EA    50              PUSH EAX
003739EB    8B85 33374000   MOV EAX,DWORD PTR SS:[EBP+403733]        ; VirtualAlloc
003739F1    E9 BD0A0000     JMP 003744B3
……
00373A0A   /74 15           JE SHORT 00373A21
00373A0C   |03BD 37374000   ADD EDI,DWORD PTR SS:[EBP+403737]
00373A12   |EB 09           JMP SHORT 00373A1D
00373A14   |8907            MOV DWORD PTR DS:[EDI],EAX               ; 往原始IAT处填入第一层加密地址
00373A16   |83C0 20         ADD EAX,20
00373A19   |83C7 04         ADD EDI,4
00373A1C   |49              DEC ECX
00373A1D   |0BC9            OR ECX,ECX
00373A1F  ^|75 F3           JNZ SHORT 00373A14
00373A21   /59              POP ECX
00373A22    58              POP EAX
00373A23    8BF8            MOV EDI,EAX
00373A25    57              PUSH EDI
00373A26    51              PUSH ECX
00373A27    EB 2D           JMP SHORT 00373A56
00373A29    8D47 1C         LEA EAX,DWORD PTR DS:[EDI+1C]            ; 这里开始对第层加密地址变成
push [addr]
xor [esp],xorkey
ret
这里的ret就是返回到第真正去api的地址:
00373A2C    66:C707 FF35    MOV WORD PTR DS:[EDI],35FF
00373A31    C747 06 8134240>MOV DWORD PTR DS:[EDI+6],243481
00373A38    8947 02         MOV DWORD PTR DS:[EDI+2],EAX
00373A3B    C647 0D C3      MOV BYTE PTR DS:[EDI+D],0C3
00373A3F    52              PUSH EDX
00373A40    0F31            RDTSC
00373A42    32E0            XOR AH,AL
00373A44    C1C8 08         ROR EAX,8
00373A47    02E0            ADD AH,AL
00373A49    C1C8 08         ROR EAX,8
00373A4C    32E0            XOR AH,AL
00373A4E    8947 09         MOV DWORD PTR DS:[EDI+9],EAX
00373A51    5A              POP EDX
00373A52    83C7 20         ADD EDI,20
00373A55    49              DEC ECX
00373A56    0BC9            OR ECX,ECX
00373A58  ^ 75 CF           JNZ SHORT 00373A29                       ; 跳回去继续
00373A5A    59              POP ECX
为了方便我们后面的操作我把它变成:
push [addr]
xor [esp],xorkey
ret
的方式变成
PUSH [ADDR]
XOR [ESP],XORKEY
ADD ESP,4
RET
用于后面的操作,具体代码如下:
00373A38    8947 02         MOV DWORD PTR DS:[EDI+2],EAX
00373A3B    C647 0D C3      MOV BYTE PTR DS:[EDI+D],0C3
;这里用于处理成add esp,4的方式
00373A38  - E9 03C60000     JMP 00380040
00373A3D    90              NOP
00373A3E    90              NOP
在00380040处写上几句:
00380040    8947 02         MOV DWORD PTR DS:[EDI+2],EAX
00380043    C747 0D 83C404C>MOV DWORD PTR DS:[EDI+D],C304C483 ;变成add esp,4 ret的方式
0038004A  - E9 F039FFFF     JMP 00373A3F
0038004F    90              NOP
继续跟到这里:
00373ABB    8D95 C73B4000   LEA EDX,DWORD PTR SS:[EBP+403BC7]        ; 这里取出正确的函数
00373AC1    52              PUSH EDX
00373AC2    52              PUSH EDX
00373AC3    8D85 283A4000   LEA EAX,DWORD PTR SS:[EBP+403A28]        ; 这里取出特殊API函数,判断是否要特别"照顾"
00373AC9    50              PUSH EAX
00373ACA    8D85 E2204000   LEA EAX,DWORD PTR SS:[EBP+4020E2]
00373AD0    50              PUSH EAX
00373AD1    8B85 60384000   MOV EAX,DWORD PTR SS:[EBP+403860]        ; lstrcmpiA比较是否为特别函数
00373AD7    E9 D7090000     JMP 003744B3
00373ADC    90              NOP
00373ADD    5A              POP EDX
00373ADE    85C0            TEST EAX,EAX
00373AE0    75 0B           JNZ SHORT 00373AED                       ; 如果不是特别的函数就跳,后面还有很多这样的比较,所以我们这里又改改
00373AE2    8D85 E72F4000   LEA EAX,DWORD PTR SS:[EBP+402FE7]
00373AE8    E9 31030000     JMP 00373E1E
……
00373D9F    52              PUSH EDX                                 ; 没有特别函数最后就到这里
00373DA0    56              PUSH ESI
00373DA1    8D85 B9234000   LEA EAX,DWORD PTR SS:[EBP+4023B9]
00373DA7    50              PUSH EAX
00373DA8    8B85 27374000   MOV EAX,DWORD PTR SS:[EBP+403727]        ; GetProcAddress,获取API
00373DAE    E9 00070000     JMP 003744B3
00373DB3  ^ 75 8B           JNZ SHORT 00373D40
00373DB5    9D              POPFD
00373DB6    3C 3D           CMP AL,3D
00373DB8    40              INC EAX
00373DB9    0003            ADD BYTE PTR DS:[EBX],AL
00373DBB    9D              POPFD
00373DBC    40              INC EAX
00373DBD    3D 40005350     CMP EAX,50530040
00373DC2    53              PUSH EBX
00373DC3    E8 00070000     CALL 003744C8                            ; 这里进去就是壳放API的代码,前面已经跟过,所以不再跟进
好了,我们现在改一下,让壳“一律对待”。
00373AE0   /E9 BA020000     JMP 00373D9F  ;这里跳过就直接跳过特殊函数的加密
00373AE5   |90              NOP
……
00373DC8    2B85 3C3D4000   SUB EAX,DWORD PTR SS:[EBP+403D3C]
00373DCE    8985 403D4000   MOV DWORD PTR SS:[EBP+403D40],EAX
00373DD4    60              PUSHAD
00373DD5    3D C01F0000     CMP EAX,1FC0
00373DDA    76 3E           JBE SHORT 00373E1A                       ; 判断是否够空间放iat
00373DDC    6A 04           PUSH 4
00373DDE    68 00100000     PUSH 1000
00373DE3    68 00200000     PUSH 2000
00373DE8    6A 00           PUSH 0
00373DEA    8D85 0F244000   LEA EAX,DWORD PTR SS:[EBP+40240F]
00373DF0    50              PUSH EAX
00373DF1    8B85 33374000   MOV EAX,DWORD PTR SS:[EBP+403733]        ; VirtualAlloc
00373DF7    E9 B7060000     JMP 003744B3
00373DFC    EB 64           JMP SHORT 00373E62
00373DFE    8F05 00000000   POP DWORD PTR DS:[0]
00373E04    58              POP EAX
00373E05  ^ E9 8BFEFFFF     JMP 00373C95
00373E0A    8985 3C3D4000   MOV DWORD PTR SS:[EBP+403D3C],EAX
00373E10    C785 403D4000 0>MOV DWORD PTR SS:[EBP+403D40],0
00373E1A    61              POPAD
00373E1B    5B              POP EBX
00373E1C    8BC3            MOV EAX,EBX
00373E1E    3347 09         XOR EAX,DWORD PTR DS:[EDI+9]
00373E21    8947 1C         MOV DWORD PTR DS:[EDI+1C],EAX
00373E24    5A              POP EDX
00373E25    0FB642 FF       MOVZX EAX,BYTE PTR DS:[EDX-1]
00373E29    03D0            ADD EDX,EAX
00373E2B    42              INC EDX
00373E2C    83C7 20         ADD EDI,20
00373E2F    59              POP ECX
00373E30    49              DEC ECX
00373E31  ^ 0F85 28FCFFFF   JNZ 00373A5F                             ; 对指定的DLL没有处理完则回去继续
00373E37  ^ E9 A2FAFFFF     JMP 003738DE                             ; 处理完则指向下一个DLL
到了这里我们就不用再跟什么了,直接在003736f9处下断.
003736F9    50              PUSH EAX                                 ; 这里跳去oep
003736FA    C3              RETN
运行之.
00373F0E  ^/EB FA           JMP SHORT 00373F0A                       ; 第一个异常
00373F10    8985 43374000   MOV DWORD PTR SS:[EBP+403743],EAX
……
00373E94    6285 443D4000   BOUND EAX,QWORD PTR SS:[EBP+403D44]      ; 第二个异常
00373E9A  ^ EB F8           JMP SHORT 00373E94
过了第二个异常后在我们下断的地方断下来了.断下了,现在要再写一段程序来修复代码:
003736FA    60              PUSHAD                                   ; 保护现场
003736FB    9C              PUSHFD
003736FC    BE 28814D00     MOV ESI,4D8128                           ; 取原始IAT的地址
00373701    81FE F4824D00   CMP ESI,4D82F4                           ; 判断有没有结束
00373707    73 1F           JNB SHORT 00373728
00373709    8B1E            MOV EBX,DWORD PTR DS:[ESI]               ; 取出第一层加密地址
0037370B    83FB 00         CMP EBX,0                                ; 用于判断是否为0的情况
0037370E    74 13           JE SHORT 00373723
00373710    81FB 0000C000   CMP EBX,0C00000                          ; 判断是否加密后的地址
00373716    73 0B           JNB SHORT 00373723
00373718    FFD3            CALL EBX                                 ; call第一层的内容
0037371A    8B5C24 F8       MOV EBX,DWORD PTR SS:[ESP-8]             ; 第一次的3f0000这段是返回到第二层地址处
0037371E    8B5B 01         MOV EBX,DWORD PTR DS:[EBX+1]             ; 因为我们前面已经path 了代码,所以这里直接 [ebx+1]就是正确IAT地址
00373721    891E            MOV DWORD PTR DS:[ESI],EBX               ; 把API写入正确的位置
00373723    83C6 04         ADD ESI,4
00373726  ^ EB D9           JMP SHORT 00373701
00373728    9D              POPFD
00373729    61              POPAD
0037372A    C3              RETN
这样处理后,用IMP看一下,两有两个地方没有修复,这个简单,把上面的代码改几句就行了.具体的我修改很简单,我也不多讲了.
最后有一个无效的函数,直接CUT就行了.

Greetz:
 Fly.Jingulong,yock,tDasm.David.ahao.UFO(brother).alan(sister).all of my friends and you!

By loveboom[DFCG][FCG][US]
Email:bmd2chen#tom.com

游戏外挂制作指南 (一) 要想在修改游戏中做到百战百胜,是需要相当丰富的计算机知识的。有很多计算机高手就是从玩游戏,修改游戏中,逐步对计算机产生浓厚的兴趣,逐步成长起来的。不要在羡慕别人能够做到的,因为别人能够做的你也能够!我相信你们看了本教程后,会对游戏有一个全新的认识,呵呵,因为我是个好老师!(别拿鸡蛋砸我呀,救命啊!#¥%……*) 不过要想从修改游戏中学到知识,增加自己的计算机水平,可不能只是靠修改游戏呀!要知道,修 阅读详情

相关推荐

外挂基础知识入门

转:http://bbs.gameres.com/thread_142398_1_1.html 某些白痴菜鸟加本人QQ,扯了几天几夜。我确实累了...爱谁谁吧...爱用C++的用C++,爱用delphi用delphi,爱用易语言的用易语言...想怎么用你们就用什么...别扯这么多...骗子教程,专门骗钱没什么真技术.五代科技 www.5dai.com天下无挂 www.watxwg.c...

weixin_30435261的博客 1891

外挂、破解软件理论与实战

外挂、破解软件理论与实战

weixin_45565886的博客 9948

协议型外挂的制作二

协议型外挂的制作二By rix       上一次我们说了目标程序的启动,以及对目标程序的预处理。这一节中争取可以将外挂的窗口显出来,具体能不能说这么多,只能看着办了。       因为我决定采用最俗的办法Hook来注入线程(有时候我都觉得自己是否有必要这么做,因为Debug的办法也不错),为了程序的更普遍性和更快的移植,以及简单一点,我决定还是采用Hook。这里提前说一下,如果不懂汇

zhangze的专栏 2936

多层外壳脱壳分析

【目    标】: Nnewell的某KeyGenMe【工    具】:Olydbg1.1B(diy版)、LORDPE、ImportREC1.6F【任    务】:.透视N层马甲(暴破),简单脱N层壳.【操作平台】:winxp sp1【作    者】:loveboom[DFCG][FCG]【相关链接】: 见附件【简要说明】:很久没有写什么文章,都快老了,我自己也终于结束了几年的网吧调试生活,就此献

loveboom's Reverse Enginering 2528

协议型外挂制作四

协议型外挂制作四By rix       上一次我们说了外挂中APIHOOK和基本平台的搭建,但仅仅只用APIHOOK在大多数的时候并不能达到目的,没有哪个公司会将网络打包加密解密解包的程序放在dll中以函数的形式就可以查看。所以这节来讲解为目标程序打内存补丁来修改程序的执行路径,通过这种办法让目标程序成为我们的奴隶。       前两天由于项目的关系,耽搁了两天教程,对不起大家。今天

zhangze的专栏 2574

AsprDbgr 脱壳辅助工具

AsprDbgr是ASProtect 1.23的脱壳辅助工具

脱机外挂制作完全版(制作原理与实现技术)

[恢复+原创][2007.10.26]脱机外挂制作完全版(制作原理与实现技术)一、游戏封包的加密与解密算法的破解   破解封包的加密与解密算法是制作外挂的第一步,是外挂制作中最具技术含量的步骤,同样也是一个十分令人头痛的环节。如果加密与解密算法被成功地破解,那么外挂制作也就完成了一半。破解封包的加密与解密算法的行为同样属于黑客们其中之一的行为,因此我们可以在黑客网站里找到相应的资料,另外网络上也

~~我非我的窝~~ 4493

ollydbg(od吾爱破解最新版)+多款脱壳脚本 目前破解最强工具!

ollydbg(od吾爱破解最新版)+多款脱壳脚本 ,目前破解最强工具!

软件破解脱壳法

什么是脱壳技术?在一些电脑软件里有一段专门负责保护软件不被非法修改或反编译的程序。它们一般都是先于程序运行拿到控制权,然后完成它们保护软件的任务。就像动植物的壳一般都是在身体外面一样理所当然(但后来也出现了所谓的“壳中带籽”的壳)。由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,大家就把这样的程序称为“壳”了。就像电脑病毒和自然界的病毒一样,其实都是命名上的方法罢了。从功能上抽象

溪风的专栏 4075

OD破解工具脚本大全(附118种脱壳脚本)

Ollydbg 通常称作OD,是反汇编工作的常用工具,该Ollydbg吾爱破解专版是基于Ollydbg V1.10版本汉化而成,吾爱破解OD附带了118脱壳脚本和各种插件,功能非常强大,基本上不需要再附加安装其它插件了。 1.对OD的窗口签名进行了更改,从而避免被针对性检测 2.修改了OD窗口切换快捷键为TAB键、 3.修改附加窗口支持滚轮滚动 4.修改OD启动时为优先加载插件 5.采用论坛夜冷风发布的字符串插件,有效的解决了字符串退出BUG 6.增加了advancedolly插件有效解决了OD无法批量修改及无法进行带壳数据窗口跟随的BUG 7.改动了OD子窗口的类名 8.更新了部分插件及添加部分插件 9.sod默认设置为全选模式,以后会自行更新 10.本次更新后的MD5:fe6ce83710c8834d37d979d818a1c6ba 吾爱破解专用版.rar 11.解决注入代码时提示框 360安全卫士可能会误报StrongOD释放的驱动为病毒,造成ollydbg调试过程中某些功能不能使用。在此提醒大家一下,以免大家误会。如果想调试过程中没有什么障碍,希望大家在调试过程中暂时屏蔽掉360安全卫士。

脱壳工具.专业脱壳.去脱吧骚年

可以脱软件的壳.想脱壳软件的不防下载来脱一下..吧

Themida 1.8.X 脱壳之泡泡堂不死外挂3.16

Themida 1.8.X 脱壳之泡泡堂不死外挂3.16 Themida 1.8.X 脱壳之泡泡堂不死外挂3.16 首先用PEID查下壳:什么也没发现,看区段名有Themida 字样,初步估计应该是1.8.X的。 载入后隐藏我们的OD,在代码段下内存写入断点 0041D014 >B8 00000000 MOV EAX,0 ...

weixin_30907935的博客 955

万能脱壳辅助工具 GUnpacker V0.5

GUnpacker是一个辅助脱壳工具,它的主要功能有两个: 1.定位OEP 2.Dump已经解密的代码和数据,可用于后续的PE修复

明天你来自己做外挂

随着网络游戏的日益火爆,很多玩家都投身到游戏中。目前很多玩家都依赖于一些游戏的外挂程序来进行游戏。那么做一个游戏的外挂程序是否是一件很困难的事呢?回答是"否",诚然编写一些程序是需要一些基本知识的,所以我们想以最简单的语言来给你讲授编写外挂程序的一些技巧,一些方法,并提供给你一些基本的辅助工具,即使你是一个菜鸟,看了我们的教程,并技巧地使用我们提供给你的工具,你完全能够编写出一个完全属于你自己的外

唸 尐 憂 的 天 空 1727

Raid5损坏两块盘

  以下为浪潮Inspur NF5460M4型号服务器故障处理过程: 设备raid5组损坏两块硬,并raid组处理离线状态,情况如图:     由于硬盘数据比较重要,面对此情况不要慌我们尽量做到安全保守的保证数据尽可能完整,以下为处理方法,(遇raid5两块盘出现问题处理方法)   以下截图均为遇相同问题的解决图案,并非现场截图。 Ctrl+H 进WebBios界面,发现两...

chen_lipeng的博客 2万+

003:大疆智图新手入门:从下载安装到首次建模实战

本文为大疆智图新手提供从下载安装到首次三维建模的完整实战指南。详细介绍了软件安装的硬件要求、试用许可申请流程,并指导用户如何准备航拍数据或使用开源样例进行首次建模。通过分步操作演示与核心参数设置讲解,帮助初学者快速掌握使用大疆智图进行实景三维重建的核心流程与常见问题解决方案。

t8u9v0的博客 703

如何开始写外挂

学习步骤:1、学习一门高级语言(推荐C/C++) 推荐谭浩强(C++程序设计)2、掌握一种编程工具(推荐VC)3、学习汇编基础(只需要了解,能看明白汇编代码就行)4、了解游戏的基本原理尝试使用FPE、CE等软件修改单机游戏。5、学习破解技术(推荐加密与解密II一书)6、掌握常用的调试工具、反汇编工具、PE工具、脱壳工具等7、尝试破解一些共享软件8、掌握逆向编程(建议将自己编写的软件反编辑做对照学习

老付的专栏 4987

OSMDroid 切换地图不更新的问题

用OSMDroid加载Google地图的时候 需要有按钮切换不同图层的地图,如果发现调用了mMapView.setTileSource(ITileSource aTileSource)方法的时候发现地图View没有更新的话,可能是因为两个实例化TileSource对象其子类BitmapTileSourceBase这个类的aName成员变量值一样导致的地图在setTileSource出现不更新问题,...

godoge的博客 1039

“外挂”简介

【简介】  由于众多玩家参与游戏,随着游戏参与程度的加大,便出现了玩家修改游戏程序的现象,俗称外挂(“hack tools”,又叫“cheating program”)。所谓外挂就是指某些人利用自己的电脑技术专门针对一个或多个网络游戏,通过改变网络游戏软件的部分程序,制作而成的作弊程序。用户利用外挂这种作弊手段可以轻易得到其他正常用户无法得到、或必须通过长期运行程序才能得到的游戏效果。外挂的表

steel的专栏 7607

kaggle——销量预测的baseline(M5 Forecasting - Accuracy)

前言 在刚刚结束的kaggle比赛M5 Forecasting - Accuracy中,因为是第一次参加,笔者也是花了大量的时间和精力在上面,最终拿到一块银牌(所以我拿到了大学第一个考试挂科。。。求求电磁场老师高抬贵手给点平时分放我一马吧。。。早上看到kaggle成绩异常兴奋,中午考完直接爆炸=。=),当然运气占了很大因素,这次比赛private leadboard的shake up非常大,排名波动几千名都存在的。笔者运气不错,是向上的shake:)。这里总结一下销量预测的基本流程。 从下图可以看到这次比

weixin_43901221的博客 5433

Windows10内核逆向-2-KiSystemCall64的调用流程剖析

本文深入剖析了Windows 10 x64系统中KiSystemCall64函数的完整调用流程。从用户态触发syscall指令开始,详细讲解了如何通过swapgs切换内核栈、构建KTRAP_FRAME陷阱帧、进行SMAP/CFG等安全检查,到最终通过SSDT寻址并执行目标系统服务的全过程,揭示了系统调用从Ring 3到Ring 0切换的核心机制与安全设计。

weixin_29209805的博客 82
上一篇: 多层外壳脱壳分析
下一篇: ASPROTECT 1.23RC4 脱壳分析
bmd2chen
博客等级 码龄23年 34粉丝 45原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值