a__p 发表于 2007-5-1 16:52:41

Themida & WinLicen 辅助脚本

Themida & WinLicen 辅助脚本

减少一些手工活

/*
Script written by~icy~学习班
Script            : Themida & WinLicen 辅助脚本
Date            : 2007-05-01
Test Environment: OllyDbg 1.1, ODBGScript 1.52, Winxp Win2003
*/

var modulebase
var codebase
var codesize
var TZ1
var TZ2
var gjd1
var gjd2

BPHWCALL

gmi eip,MODULEBASE
mov modulebase,$RESULT
gmi eip,CODEBASE
mov codebase,$RESULT
gmi eip,CODESIZE
mov codesize,$RESULT

bpwm codebase,codesize
ESTO

REP:
ESTO
ESTO
find eip,#F3A4????#
cmp $RESULT,0
je REP
STI
STO
ESTO

LODS:
find eip,#8908AD??#
cmp $RESULT,0
je TZ1

ask "请输入关键点1地址范围=当前EIP-888"
cmp $RESULT,0
je Over
mov gjd1,$RESULT
repl gjd1, #0F850A000000#, #EB0E90909090#,FF
ask "请输入关键点2地址范围=当前EIP-777"
cmp $RESULT,0
je Over
mov gjd2,$RESULT
repl gjd2, #0F8439000000#, #EB2890909090#,FF
bpmc
Over:
eval "请在此处修改补丁代码!见本脚本后面注释部分参考代码!"
msg $RESULT
ret

TZ1:
ESTO
find eip,#8908AD??#
cmp $RESULT,0
jmp LODS



=================================================================================================

参考代码:

=================================================================================================
004F52E1   8908             MOV DWORD PTR DS:,ECX          《=========脚本执行完毕后地址
004F52E3   AD               LODS DWORD PTR DS:
004F52E4   C746 FC 0000000>MOV DWORD PTR DS:,0   
004F52EB   89B5 6D301B07    MOV DWORD PTR SS:,ESI
004F52F1   83F8 FF          CMP EAX,-1
004F52F4   0F85 20000000    JNZ 无敌外挂.004F531A
004F52FA   813E DDDDDDDD    CMP DWORD PTR DS:,DDDDDDDD
004F5300   0F85 14000000    JNZ 无敌外挂.004F531A
=================================================================================================
004F4A8D    |0F85 0A000000    JNZ 无敌外挂.004F4A9D               《=========关键点1地址
004F4A93    |C785 410C1B07 0> MOV DWORD PTR SS:,1
004F4A9D    \61               POPAD
=================================================================================================
004F4BCC   0F84 39000000    JE 无敌外挂.004F4C0B                《=========关键点2地址
004F4BD2   3B8D 29081B07    CMP ECX,DWORD PTR SS:
004F4BD8   0F84 2D000000    JE 无敌外挂.004F4C0B
004F4BDE   3B8D 1D171B07    CMP ECX,DWORD PTR SS:
004F4BE4   0F84 21000000    JE 无敌外挂.004F4C0B
004F4BEA   3B8D 552A1B07    CMP ECX,DWORD PTR SS:
004F4BF0   0F84 15000000    JE 无敌外挂.004F4C0B
004F4BF6   8D9D E2FD2107    LEA EBX,DWORD PTR SS:
004F4BFC   FFD3             CALL EBX
004F4BFE   8BF8             MOV EDI,EAX
004F4C00   8985 1D2F1B07    MOV DWORD PTR SS:,EAX
004F4C06   E9 B4060000      JMP 无敌外挂.004F52BF
004F4C0B   8D9D E2FD2107    LEA EBX,DWORD PTR SS:
004F4C11   FFD3             CALL EBX
=================================================================================================
脚本已自动改好上面2处了,返回中断处,用HideOD申请一段内存地址(我的是2A30000)

004F52E1   8908             MOV DWORD PTR DS:,ECX          《=========改成 JMP 2A30000
004F52E3   AD               LODS DWORD PTR DS:
004F52E4   C746 FC 0000000>MOV DWORD PTR DS:,0   
004F52EB   89B5 6D301B07    MOV DWORD PTR SS:,ESI《=========地址A,记下来
004F52F1   83F8 FF          CMP EAX,-1
004F52F4   0F85 20000000    JNZ 无敌外挂.004F531A
004F52FA   813E DDDDDDDD    CMP DWORD PTR DS:,DDDDDDDD
004F5300   0F85 14000000    JNZ 无敌外挂.004F531A
004F5306   C706 00000000    MOV DWORD PTR DS:,0
004F530C   83C6 04          ADD ESI,4
004F530F   89B5 6D301B07    MOV DWORD PTR SS:,ESI
004F5315   ^ E9 E6F6FFFF      JMP 无敌外挂.004F4A00
004F531A   C1C0 03          ROL EAX,3
004F531D   0385 11171B07    ADD EAX,DWORD PTR SS:
004F5323   83BD 99221B07 0>CMP DWORD PTR SS:,1
004F532A   0F84 9D000000    JE 无敌外挂.004F53CD
004F5330   813E AAAAAAAA    CMP DWORD PTR DS:,AAAAAAAA
004F5336   0F85 12000000    JNZ 无敌外挂.004F534E
004F533C   83C6 04          ADD ESI,4
004F533F   C746 FC 0000000>MOV DWORD PTR DS:,0
004F5346   97               XCHG EAX,EDI
004F5347   B0 E9            MOV AL,0E9
004F5349   E9 03000000      JMP 无敌外挂.004F5351
004F534E   97               XCHG EAX,EDI
004F534F   B0 E8            MOV AL,0E8
004F5351   50               PUSH EAX
004F5352   83BD 31011B07 0>CMP DWORD PTR SS:,1
004F5359   0F84 3E000000    JE 无敌外挂.004F539D
004F535F   B8 00010000      MOV EAX,100
004F5364   83BD C7E82107 0>CMP DWORD PTR SS:,0
004F536B   0F84 08000000    JE 无敌外挂.004F5379
004F5371   8D9D 61712107    LEA EBX,DWORD PTR SS:
004F5377   FFD3             CALL EBX
004F5379   803F 90          CMP BYTE PTR DS:,90
004F537C   0F84 08000000    JE 无敌外挂.004F538A
004F5382   83C7 05          ADD EDI,5
004F5385   E9 43000000      JMP 无敌外挂.004F53CD
004F538A   83F8 50          CMP EAX,50
004F538D   0F82 0A000000    JB 无敌外挂.004F539D
004F5393   B0 90            MOV AL,90
004F5395   AA               STOS BYTE PTR ES:
004F5396   58               POP EAX
004F5397   AA               STOS BYTE PTR ES:
004F5398   E9 24000000      JMP 无敌外挂.004F53C1               《=========改成 JMP 2A30014
004F539D   58               POP EAX
004F539E   AA               STOS BYTE PTR ES:
004F539F   807F FF E9       CMP BYTE PTR DS:,0E9
004F53A3   0F85 18000000    JNZ 无敌外挂.004F53C1               《=========改成 JMP 2A30036
004F53A9   83BD C7E82107 0>CMP DWORD PTR SS:,0   《=========地址C,记下来
004F53B0   0F84 08000000    JE 无敌外挂.004F53BE
004F53B6   8D9D 31712107    LEA EBX,DWORD PTR SS:
004F53BC   FFD3             CALL EBX
004F53BE   8847 04          MOV BYTE PTR DS:,AL          《=========这里NOP掉
004F53C1   8B85 1D2F1B07    MOV EAX,DWORD PTR SS:《=========地址B,记下来
004F53C7   2BC7             SUB EAX,EDI
004F53C9   83E8 04          SUB EAX,4
004F53CC   AB               STOS DWORD PTR ES:             《=========这里NOP掉
004F53CD   AD               LODS DWORD PTR DS:
004F53CE   C746 FC 0000000>MOV DWORD PTR DS:,0
004F53D5   ^ E9 11FFFFFF      JMP 无敌外挂.004F52EB               《=========改成 JMP 2A3005F
004F53DA   89B5 6D301B07    MOV DWORD PTR SS:,ESI
004F53E0   52               PUSH EDX
004F53E1   68 00800000      PUSH 8000
004F53E6   6A 00            PUSH 0
004F53E8   FFB5 F5211B07    PUSH DWORD PTR SS:
004F53EE   FF95 49131B07    CALL DWORD PTR SS:
004F53F4   5A               POP EDX
004F53F5   8B8D 9D121B07    MOV ECX,DWORD PTR SS:
004F53FB   C701 00000000    MOV DWORD PTR DS:,0
004F5401   83C1 04          ADD ECX,4
004F5404   898D 9D121B07    MOV DWORD PTR SS:,ECX
004F540A   ^ E9 10F5FFFF      JMP 无敌外挂.004F491F
004F540F   E9 A4060000      JMP 无敌外挂.004F5AB8               《=========这里F2下个断点
004F5414   60               PUSHAD
004F5415   8B8D 9D121B07    MOV ECX,DWORD PTR SS:
004F541B   8B09             MOV ECX,DWORD PTR DS:
004F541D   898D C3E82107    MOV DWORD PTR SS:,ECX
004F5423   8138 4E54444C    CMP DWORD PTR DS:,4C44544E
=================================================================================================

CTRL+G 来到2A30000处,写如下代码:

02A30000   A3 0004A302      MOV DWORD PTR DS:,EAX      《=========注意是申请的地址
02A30005   8908             MOV DWORD PTR DS:,ECX
02A30007   AD               LODS DWORD PTR DS:
02A30008   C746 FC 0000000>MOV DWORD PTR DS:,0
02A3000F   - E9 D752ACFD      JMP 无敌外挂.004F52EB               《=========地址A
02A30014   50               PUSH EAX
02A30015   A1 0004A302      MOV EAX,DWORD PTR DS:      《=========注意是申请的地址
02A3001A   8907             MOV DWORD PTR DS:,EAX
02A3001C   807F FF E8       CMP BYTE PTR DS:,0E8
02A30020   75 08            JNZ SHORT 02A3002A
02A30022   66:C747 FE FF15 MOV WORD PTR DS:,15FF
02A30028   EB 06            JMP SHORT 02A30030
02A3002A   66:C747 FE FF25 MOV WORD PTR DS:,25FF
02A30030   58               POP EAX
02A30031   - E9 8B53ACFD      JMP 无敌外挂.004F53C1               《=========地址B
02A30036   50               PUSH EAX
02A30037   A1 0004A302      MOV EAX,DWORD PTR DS:      《=========注意是申请的地址
02A3003C   8947 01          MOV DWORD PTR DS:,EAX
02A3003F   807F FF E8       CMP BYTE PTR DS:,0E8
02A30043   75 08            JNZ SHORT 02A3004D
02A30045   66:C747 FF FF15 MOV WORD PTR DS:,15FF
02A3004B   EB 06            JMP SHORT 02A30053
02A3004D   66:C747 FF FF25 MOV WORD PTR DS:,25FF
02A30053   58               POP EAX
02A30054   - 0F85 6753ACFD    JNZ 无敌外挂.004F53C1               《=========地址B
02A3005A   - E9 4A53ACFD      JMP 无敌外挂.004F53A9               《=========地址C
02A3005F   83C7 04          ADD EDI,4
02A30062   - E9 8452ACFD      JMP 无敌外挂.004F52EB               《=========地址A
02A30067   90               NOP

(二进制代码)

A3 00 04 A3 02 89 08 AD C7 46 FC 00 00 00 00 E9 D7 52 AC FD 50 A1 00 04 A3 02 89 07 80 7F FF E8
75 08 66 C7 47 FE FF 15 EB 06 66 C7 47 FE FF 25 58 E9 8B 53 AC FD 50 A1 00 04 A3 02 89 47 01 80
7F FF E8 75 08 66 C7 47 FF FF 15 EB 06 66 C7 47 FF FF 25 58 0F 85 67 53 AC FD E9 4A 53 AC FD 83
C7 04 E9 84 52 AC FD 90
=================================================================================================

写好代码后,删除先前在代码段下的内存写入断点,shift+F9,中断在004F540F,到这里已经获得了IAT,现在

找OEP.,在这里我采用世面上流传的找THEMIDA OEP方法:

取消004F540F处断点,ALT+M打开内存察看窗口,直接在代码段F2下断点。Shift+F9就中断在OEP处了

=================================================================================================

[ 本帖最后由 a__p 于 2007-5-1 17:51 编辑 ]

djlife520 发表于 2012-9-1 17:29:27

学习一下,我来做沙发
页: [1]
查看完整版本: Themida & WinLicen 辅助脚本