- UID
- 18577
注册时间2006-7-19
阅读权限20
最后登录1970-1-1
以武会友
TA的每日心情 | 开心 2017-10-10 17:24 |
---|
签到天数: 15 天 [LV.4]偶尔看看III
|
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:[EAX],ECX 《=========脚本执行完毕后地址
004F52E3 AD LODS DWORD PTR DS:[ESI]
004F52E4 C746 FC 0000000>MOV DWORD PTR DS:[ESI-4],0
004F52EB 89B5 6D301B07 MOV DWORD PTR SS:[EBP+71B306D],ESI
004F52F1 83F8 FF CMP EAX,-1
004F52F4 0F85 20000000 JNZ 无敌外挂.004F531A
004F52FA 813E DDDDDDDD CMP DWORD PTR DS:[ESI],DDDDDDDD
004F5300 0F85 14000000 JNZ 无敌外挂.004F531A
=================================================================================================
004F4A8D |0F85 0A000000 JNZ 无敌外挂.004F4A9D 《=========关键点1地址
004F4A93 |C785 410C1B07 0> MOV DWORD PTR SS:[EBP+71B0C41],1
004F4A9D \61 POPAD
=================================================================================================
004F4BCC 0F84 39000000 JE 无敌外挂.004F4C0B 《=========关键点2地址
004F4BD2 3B8D 29081B07 CMP ECX,DWORD PTR SS:[EBP+71B0829]
004F4BD8 0F84 2D000000 JE 无敌外挂.004F4C0B
004F4BDE 3B8D 1D171B07 CMP ECX,DWORD PTR SS:[EBP+71B171D]
004F4BE4 0F84 21000000 JE 无敌外挂.004F4C0B
004F4BEA 3B8D 552A1B07 CMP ECX,DWORD PTR SS:[EBP+71B2A55]
004F4BF0 0F84 15000000 JE 无敌外挂.004F4C0B
004F4BF6 8D9D E2FD2107 LEA EBX,DWORD PTR SS:[EBP+721FDE2]
004F4BFC FFD3 CALL EBX
004F4BFE 8BF8 MOV EDI,EAX
004F4C00 8985 1D2F1B07 MOV DWORD PTR SS:[EBP+71B2F1D],EAX
004F4C06 E9 B4060000 JMP 无敌外挂.004F52BF
004F4C0B 8D9D E2FD2107 LEA EBX,DWORD PTR SS:[EBP+721FDE2]
004F4C11 FFD3 CALL EBX
=================================================================================================
脚本已自动改好上面2处了,返回中断处,用HideOD申请一段内存地址(我的是2A30000)
004F52E1 8908 MOV DWORD PTR DS:[EAX],ECX 《=========改成 JMP 2A30000
004F52E3 AD LODS DWORD PTR DS:[ESI]
004F52E4 C746 FC 0000000>MOV DWORD PTR DS:[ESI-4],0
004F52EB 89B5 6D301B07 MOV DWORD PTR SS:[EBP+71B306D],ESI 《=========地址A,记下来
004F52F1 83F8 FF CMP EAX,-1
004F52F4 0F85 20000000 JNZ 无敌外挂.004F531A
004F52FA 813E DDDDDDDD CMP DWORD PTR DS:[ESI],DDDDDDDD
004F5300 0F85 14000000 JNZ 无敌外挂.004F531A
004F5306 C706 00000000 MOV DWORD PTR DS:[ESI],0
004F530C 83C6 04 ADD ESI,4
004F530F 89B5 6D301B07 MOV DWORD PTR SS:[EBP+71B306D],ESI
004F5315 ^ E9 E6F6FFFF JMP 无敌外挂.004F4A00
004F531A C1C0 03 ROL EAX,3
004F531D 0385 11171B07 ADD EAX,DWORD PTR SS:[EBP+71B1711]
004F5323 83BD 99221B07 0>CMP DWORD PTR SS:[EBP+71B2299],1
004F532A 0F84 9D000000 JE 无敌外挂.004F53CD
004F5330 813E AAAAAAAA CMP DWORD PTR DS:[ESI],AAAAAAAA
004F5336 0F85 12000000 JNZ 无敌外挂.004F534E
004F533C 83C6 04 ADD ESI,4
004F533F C746 FC 0000000>MOV DWORD PTR DS:[ESI-4],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:[EBP+71B0131],1
004F5359 0F84 3E000000 JE 无敌外挂.004F539D
004F535F B8 00010000 MOV EAX,100
004F5364 83BD C7E82107 0>CMP DWORD PTR SS:[EBP+721E8C7],0
004F536B 0F84 08000000 JE 无敌外挂.004F5379
004F5371 8D9D 61712107 LEA EBX,DWORD PTR SS:[EBP+7217161]
004F5377 FFD3 CALL EBX
004F5379 803F 90 CMP BYTE PTR DS:[EDI],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:[EDI]
004F5396 58 POP EAX
004F5397 AA STOS BYTE PTR ES:[EDI]
004F5398 E9 24000000 JMP 无敌外挂.004F53C1 《=========改成 JMP 2A30014
004F539D 58 POP EAX
004F539E AA STOS BYTE PTR ES:[EDI]
004F539F 807F FF E9 CMP BYTE PTR DS:[EDI-1],0E9
004F53A3 0F85 18000000 JNZ 无敌外挂.004F53C1 《=========改成 JMP 2A30036
004F53A9 83BD C7E82107 0>CMP DWORD PTR SS:[EBP+721E8C7],0 《=========地址C,记下来
004F53B0 0F84 08000000 JE 无敌外挂.004F53BE
004F53B6 8D9D 31712107 LEA EBX,DWORD PTR SS:[EBP+7217131]
004F53BC FFD3 CALL EBX
004F53BE 8847 04 MOV BYTE PTR DS:[EDI+4],AL 《=========这里NOP掉
004F53C1 8B85 1D2F1B07 MOV EAX,DWORD PTR SS:[EBP+71B2F1D] 《=========地址B,记下来
004F53C7 2BC7 SUB EAX,EDI
004F53C9 83E8 04 SUB EAX,4
004F53CC AB STOS DWORD PTR ES:[EDI] 《=========这里NOP掉
004F53CD AD LODS DWORD PTR DS:[ESI]
004F53CE C746 FC 0000000>MOV DWORD PTR DS:[ESI-4],0
004F53D5 ^ E9 11FFFFFF JMP 无敌外挂.004F52EB 《=========改成 JMP 2A3005F
004F53DA 89B5 6D301B07 MOV DWORD PTR SS:[EBP+71B306D],ESI
004F53E0 52 PUSH EDX
004F53E1 68 00800000 PUSH 8000
004F53E6 6A 00 PUSH 0
004F53E8 FFB5 F5211B07 PUSH DWORD PTR SS:[EBP+71B21F5]
004F53EE FF95 49131B07 CALL DWORD PTR SS:[EBP+71B1349]
004F53F4 5A POP EDX
004F53F5 8B8D 9D121B07 MOV ECX,DWORD PTR SS:[EBP+71B129D]
004F53FB C701 00000000 MOV DWORD PTR DS:[ECX],0
004F5401 83C1 04 ADD ECX,4
004F5404 898D 9D121B07 MOV DWORD PTR SS:[EBP+71B129D],ECX
004F540A ^ E9 10F5FFFF JMP 无敌外挂.004F491F
004F540F E9 A4060000 JMP 无敌外挂.004F5AB8 《=========这里F2下个断点
004F5414 60 PUSHAD
004F5415 8B8D 9D121B07 MOV ECX,DWORD PTR SS:[EBP+71B129D]
004F541B 8B09 MOV ECX,DWORD PTR DS:[ECX]
004F541D 898D C3E82107 MOV DWORD PTR SS:[EBP+721E8C3],ECX
004F5423 8138 4E54444C CMP DWORD PTR DS:[EAX],4C44544E
=================================================================================================
CTRL+G 来到2A30000处,写如下代码:
02A30000 A3 0004A302 MOV DWORD PTR DS:[2A30400],EAX 《=========注意是申请的地址
02A30005 8908 MOV DWORD PTR DS:[EAX],ECX
02A30007 AD LODS DWORD PTR DS:[ESI]
02A30008 C746 FC 0000000>MOV DWORD PTR DS:[ESI-4],0
02A3000F - E9 D752ACFD JMP 无敌外挂.004F52EB 《=========地址A
02A30014 50 PUSH EAX
02A30015 A1 0004A302 MOV EAX,DWORD PTR DS:[2A30400] 《=========注意是申请的地址
02A3001A 8907 MOV DWORD PTR DS:[EDI],EAX
02A3001C 807F FF E8 CMP BYTE PTR DS:[EDI-1],0E8
02A30020 75 08 JNZ SHORT 02A3002A
02A30022 66:C747 FE FF15 MOV WORD PTR DS:[EDI-2],15FF
02A30028 EB 06 JMP SHORT 02A30030
02A3002A 66:C747 FE FF25 MOV WORD PTR DS:[EDI-2],25FF
02A30030 58 POP EAX
02A30031 - E9 8B53ACFD JMP 无敌外挂.004F53C1 《=========地址B
02A30036 50 PUSH EAX
02A30037 A1 0004A302 MOV EAX,DWORD PTR DS:[2A30400] 《=========注意是申请的地址
02A3003C 8947 01 MOV DWORD PTR DS:[EDI+1],EAX
02A3003F 807F FF E8 CMP BYTE PTR DS:[EDI-1],0E8
02A30043 75 08 JNZ SHORT 02A3004D
02A30045 66:C747 FF FF15 MOV WORD PTR DS:[EDI-1],15FF
02A3004B EB 06 JMP SHORT 02A30053
02A3004D 66:C747 FF FF25 MOV WORD PTR DS:[EDI-1],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 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
x
|