在一些OD上,往往会看到OD的标题不是我们常见的OD标题,而是一些比较个性化的OD标题,如,小花www.zfsyhg.com个性加强版OD
这些修改后的OD标题怎么来的,如果动手能力强的朋友一定会用来解剖这些个性化标题的OD,以便一探究竟--
其实想拥有一款属于自己的个性化标题的OD很容易,只需要经过下面的操作,菜鸟可以拥有一款属于自己的个性化标题的OD --
两个地址:0041E35F 00435E46
一个基值:004B59E6(在00435E46这下F2断点,F9断在00435E46后,看寄存器窗口中的ESI的值,你们那是多少就是多少,不过
一般都是这个004B59E6) 修改后的OD名称基值要大于它:可以在004B59E6以后,最好是在地址:004B71EE之后,
但是要注意,位移地址不能出004CA000区段(如果出了004CA000区段,保存可执行文件时会提示无法重定位)找个空白
的地方,写入自定义OD名称--- 004B71EE = 004B59E6 + 0x1808 也就是:[esi+0x1808]= 004B71EE (这是存OD标题的地方)
用到的断点:bp LoadIconA (初次修改的情况下用到,熟练了就用不着了)
用到的命令:DD XXXXXXXX(X借指地址)
分三步:本教程以地址:0x4B7182为例
第一步:在数据窗口中 下 DD 004B71EE 命令,在来到地址 004B71EE 处, 向下拉,找个空白的地方写入自定义OD标题
然后记下写入自定义代码的开始地址:XXXXXXX(0x4B7182) 后复制到可执行文件--命名为:任意名字,区分开来--
第二步:载入修改后的OD,来到 0041E35F 修改代码:mov edx,0x4B3966 为 mov edx,0x4B7182,然后再复制到可执行文件--
会提示要重定位,我们不用管它,OD自动帮我们重新定位,点“是”- 继续--
第三步:继续载入修改后的OD,来到 00435E46 修改代码 lea edx,dword ptr ds:[esi+0x1808] 为:lea edx,dword ptr ds:[esi+0xXXXX]
(XXXX = 写入自定义OD标题处的地址 减去 基值004B59E6,例:我写入自定义标题的起始地址是:004B7182,
那么XXXX就等于004B7182减去004B59E6,借助专业计算器算出结果为 179C )那么,这个地址就改为lea edx,dword ptr ds:[esi+0x179C]
最直接的方法就是在 00435E46 处直接修改成如下代码:MOV EDX XXXXXXXXX (代指个性化标题地址),但我认为这样改有个不好的地方,就是可能会在调试的时候性能不稳定..
再次保存后,一款属于自己的个性化标题的OD就完成了----
如果你这就想用它了,那我可以告诉你,前面的修改才是修改OD的第一步,接下来要做的是,将Plugin、UDD两个路径设置成相对(自动获取)路径
代码如下:
1 自动配置UDD、PLUGIN为绝对路径
修改前
00437376 . 68 027F0000 PUSH 7F02 ; /RsrcName = IDC_WAIT
0043737B . 6A 00 PUSH 0 ; |hInst = NULL
0043737D . E8 76810700 CALL <JMP.&USER32.LoadCursorA> ; \LoadCursorA
修改后
00437376 . /E9 55830700 JMP Ollydbg.004AF6D0 ; 修改这里 跳到一个空白的地方,以便写入后面的代码
0043737B > |6A 00 PUSH 0 ; |hInst = NULL
0043737D . |E8 76810700 CALL <JMP.&USER32.LoadCursorA> ; \LoadCursorA
修改方法:
把二进制码 00 70 6C 75 67 69 6E 00 55 44 44 00 粘贴到 4AF6C4
然后修改 00437376 的 PUSH 7F02 为 JMP 004AF6D0 (在这是个例子)
跟随跳转来到空白处,选中下面的二进制代码,再选中空白起始地址 004AF6D0 的这一行,向下拉,因为二进制代码就
下面这些,所以选多点也无所谓,选好后,再二进制粘贴后保存就可以修改成UDD、PLUGIN路径为自动获取路径了--
完整代码:
PUSHAD
MOV EDI,004D3868
XOR EAX,EAX
XOR ECX,ECX
DEC ECX
REPNE SCAS BYTE PTR ES:[EDI]
NEG ECX
DEC ECX
PUSH ECX
MOV EDI,0050AE00
PUSH 004D3868
PUSH EDI
CALL 004AF22E
POP ECX
MOV BYTE PTR DS:[ECX+EDI-1],5C
MOV BYTE PTR DS:[ECX+EDI],0
ADD EDI,100
PUSH ECX
PUSH 0050AE00
PUSH EDI
CALL 004AF22E
POP ECX
PUSH ECX
PUSH 004AF6C5
SUB EDI,100
ADD EDI,ECX
PUSH EDI
CALL 004AF22E
NOP
PUSH 004AF6CC
ADD EDI,100
PUSH EDI
CALL 004AF22E
PUSH 004D53A4
PUSH 0050AF00
PUSH 004B74FD
PUSH 004B747E
CALL 004AF21C
PUSH 004D53A4
PUSH 0050AE00
PUSH 004B7506
PUSH 004B747E
CALL 004AF21C
POP ECX
PUSH ECX
MOV EDI,0050AE00
ADD ECX,7
XOR EAX,EAX
REP STOS BYTE PTR ES:[EDI]
POP ECX
ADD ECX,4
MOV EDI,50AF00
XOR EAX,EAX
REP STOS BYTE PTR ES:[EDI]
POPAD
PUSH 7F02
PUSH 43737B
RETN
二进制代码:
60 BF 68 38 4D 00 33 C0 33 C9 49 F2 AE F7 D9 49 51 BF 00 AE 50 00 68 68 38 4D 00 57 E8 3D FB FF
FF 59 C6 44 39 FF 5C C6 04 39 00 81 C7 00 01 00 00 51 68 00 AE 50 00 57 E8 21 FB FF FF 59 51 68
C5 F6 4A 00 81 EF 00 01 00 00 03 F9 57 E8 0C FB FF FF 90 68 CC F6 4A 00 81 C7 00 01 00 00 57 E8
FA FA FF FF 68 A4 53 4D 00 68 00 AF 50 00 68 FD 74 4B 00 68 7E 74 4B 00 E8 CF FA FF FF 68 A4 53
4D 00 68 00 AE 50 00 68 06 75 4B 00 68 7E 74 4B 00 E8 B6 FA FF FF 68 A4 53 4D 00 68 00 AE 50 00
68 06 75 4B 00 68 7E 74 4B 00 E8 9D FA FF FF 59 51 BF 00 AE 50 00 83 C1 07 33 C0 F3 AA 59 83 C1
04 BF 00 AF 50 00 33 C0 F3 AA 61 68 02 7F 00 00 68 7B 73 43 00 C3
2 解决 OD 格式化 Long Double 错误(如果用了这个就不要用下面的那个)
修改前
0047E7D7 |> \66:8B45 14 MOV AX,WORD PTR SS:[EBP+14]
0047E7DB |. 50 PUSH EAX ; /Arg5
0047E7DC |. FF75 10 PUSH DWORD PTR SS:[EBP+10] ; |Arg4
0047E7DF |. FF75 0C PUSH DWORD PTR SS:[EBP+C] ; |Arg3
0047E7E2 |. 68 94784C00 PUSH Themida_.004C7894 ; |Arg2 = 004C7894 ASCII "%#.19Le"
0047E7E7 |. 52 PUSH EDX ; |Arg1
0047E7E8 |. E8 3F840200 CALL Themida_.004A6C2C ; \Themida_.004A6C2C
修改后
0047E7D7 /E9 B50F0300 JMP Themida_.004AF791 ; 修改这里,跳到一个空白的地方,以便写入后面的代码
0047E7DC |. |FF75 10 PUSH DWORD PTR SS:[EBP+10] ; |Arg4
0047E7DF |. |FF75 0C PUSH DWORD PTR SS:[EBP+C] ; |Arg3
0047E7E2 |. |68 94784C00 PUSH Themida_.004C7894 ; |Arg2 = 004C7894 ASCII "%#.19Le"
0047E7E7 |. |52 PUSH EDX ; |Arg1
0047E7E8 |. |E8 3F840200 CALL Themida_.004A6C2C ; \Themida_.004A6C2C
修改方法:
修改 0047E7D7 的 MOV AX,WORD PTR SS:[EBP+14] 为 JMP 004AF791(这个地址是个变量---)
然后到 004AF791 增加如下代码
增加代码
004AF791 837D 0C FF CMP DWORD PTR SS:[EBP+C],-1
004AF795 75 0A JNZ 004AF7A1
004AF797 837D 10 FF CMP DWORD PTR SS:[EBP+10],-1
004AF79B 75 04 JNZ 004AF7A1
004AF79D 8065 0C FE AND BYTE PTR SS:[EBP+C],0FE
004AF7A1 66:8B45 14 MOV AX,WORD PTR SS:[EBP+14]
004AF7A5 50 PUSH EAX
004AF7A6 ^ E9 31F0FCFF JMP 0047E7DC ****** 留意这行的回跳,如果跳往别处,请手动改回到这行代码
二进制代码:83 7D 0C FF 75 0A 83 7D 10 FF 75 04 80 65 0C FE 66 8B 45 14 50 E9 31 F0 FC FF (二进制代码粘贴后留意最后一行,如果发现最后一行跳转位置错误,要改回来)
解决OutputDebugString("%s")错误
Ctrl+G来到:00461363,直接在原代码上修改成以下的字段--覆盖保存就可以了----
00431363 8D85 98FDFFFF LEA EAX,DWORD PTR SS:[EBP-0x268]
00431369 8038 25 CMP BYTE PTR DS:[EAX],0x25
0043136C 75 03 JNZ SHORT NTOlly.00431371
0043136E C600 26 MOV BYTE PTR DS:[EAX],0x26
00431371 40 INC EAX
00431372 4A DEC EDX
00431373 ^ 75 F4 JNZ SHORT NTOlly.00431369
8D 85 98 FD FF FF 80 38 25 75 03 C6 00 26 40 4A 75 F4
插件预先加载
00438D2F -> jmp 004AF7DD(ollydbg内一段全0区域或新加的节,位置自己找)
004AF7DD代码
pushad
call 00496658
popad
cmp dword ptr [4D578C], 0
jmp 00438D36
61 E8 75 6E FE FF 61 83 3D 8C 57 4D 00 00 E9 46 95 F8 FF
00438EE1处CALL指令 -> NOP
解决 od 格式化 long double 错误(如果用了这个就不要用上面的那个)
004AA2E0 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4]
004AA2E4 8B5424 08 MOV EDX,DWORD PTR SS:[ESP+8]
004AA2E8 E9 63530000 JMP OLLYDBG.004AF650(004AF650是个空白处,这个自己找) //修改此行
004AA2ED 90 NOP
004AA2EE 74 06 JE SHORT OLLYDBG.004AA2F6
004AA2F0 DB2A FLD TBYTE PTR DS:[EDX]
004AA2F2 DF38 FISTP QWORD PTR DS:[EAX]
004AA2F4 9B WAIT
004AA2F5 C3 RETN
004AA2F6 8B0A MOV ECX,DWORD PTR DS:[EDX]
004AA2F8 8908 MOV DWORD PTR DS:[EAX],ECX
004AA2FA 8B4A 04 MOV ECX,DWORD PTR DS:[EDX+4]
004AA2FD 8948 04 MOV DWORD PTR DS:[EAX+4],ECX
004AA300 C3 RETN
在空白处修补代码:
004AF650 66:817A 08 3E40 CMP WORD PTR DS:[EDX+8],403E
004AF656 ^0F84 9AACFFFF JE OLLYDBG.004AA2F6
004AF65C 833A FF CMP DWORD PTR DS:[EDX],-1
004AF65F ^0F85 8BACFFFF JNZ OLLYDBG.004AA2F0
004AF665 837A 04 FF CMP DWORD PTR DS:[EDX+4],-1
004AF669 ^0F85 81ACFFFF JNZ OLLYDBG.004AA2F0
004AF66F 66:817A 08 3D40 CMP WORD PTR DS:[EDX+8],403D
004AF675 ^0F85 75ACFFFF JNZ OLLYDBG.004AA2F0
004AF67B FF02 INC DWORD PTR DS:[EDX]
004AF67D FF42 04 INC DWORD PTR DS:[EDX+4]
004AF680 C642 07 80 MOV BYTE PTR DS:[EDX+7],80
004AF684 66:FF42 08 INC WORD PTR DS:[EDX+8]
004AF688 ^E9 69ACFFFF JMP OLLYDBG.004AA2F6 ******* 一定要记得跳回去
注意:设置路径为相对时,要注意保存备份文件,以便失败后再调试--我在修改时,有些时候也会发生错误,所以修改时,请一定要做好修改后的OD备份,并要细心耐心~~
后面会再出教程,不想做视频教程了,考考大家的思维能力与动手能力~~
美化OD教程
其实美化OD很简单,只需要用到 Restorator 这个工具,将原OD载入后,把原OD的位图一次性替换掉就可以了,如果用 Restorator 打不开位图资源,也可以用 PE Explorer 对位图进行一
个个的修改...
修改相关ANSI教程
其实也只需用到一个工具:FlexHEX 这款工具个人认为修改相关的ANSI最为好用,如将所有的 OllyDBG 修改成 -风 恋- 只需用 FlexHEX 这款工具打开OD Ctrl+H寻找关键词 OllyDBG 后在
下面的文本框中写入要替换的关键词 -风 恋-(注意字节平衡),先点继续,后点替换,直到绕过OllyDBG.INI文件就可以点全部替换, 修改CPU窗口标题也是用它,至于是那个,自己慢慢找
在这说不清楚.....
本期提问:美化OD并修改相关ANSI码,只用到两个工具,请问是那两个工具? 请跟贴回答(大牛路过,考小菜的~~)
最后请注意的是,在初次使用经修改最终定型的OD时,会提示要Path Classname 点是或确定就可以了,不用管它的 如果修改后不能运行的,可以用LordPE进行PE重建,重建后还不行的
只有再次修改OD,直到可以运行-----
这些修改后的OD标题怎么来的,如果动手能力强的朋友一定会用来解剖这些个性化标题的OD,以便一探究竟--
其实想拥有一款属于自己的个性化标题的OD很容易,只需要经过下面的操作,菜鸟可以拥有一款属于自己的个性化标题的OD --
两个地址:0041E35F 00435E46
一个基值:004B59E6(在00435E46这下F2断点,F9断在00435E46后,看寄存器窗口中的ESI的值,你们那是多少就是多少,不过
一般都是这个004B59E6) 修改后的OD名称基值要大于它:可以在004B59E6以后,最好是在地址:004B71EE之后,
但是要注意,位移地址不能出004CA000区段(如果出了004CA000区段,保存可执行文件时会提示无法重定位)找个空白
的地方,写入自定义OD名称--- 004B71EE = 004B59E6 + 0x1808 也就是:[esi+0x1808]= 004B71EE (这是存OD标题的地方)
用到的断点:bp LoadIconA (初次修改的情况下用到,熟练了就用不着了)
用到的命令:DD XXXXXXXX(X借指地址)
分三步:本教程以地址:0x4B7182为例
第一步:在数据窗口中 下 DD 004B71EE 命令,在来到地址 004B71EE 处, 向下拉,找个空白的地方写入自定义OD标题
然后记下写入自定义代码的开始地址:XXXXXXX(0x4B7182) 后复制到可执行文件--命名为:任意名字,区分开来--
第二步:载入修改后的OD,来到 0041E35F 修改代码:mov edx,0x4B3966 为 mov edx,0x4B7182,然后再复制到可执行文件--
会提示要重定位,我们不用管它,OD自动帮我们重新定位,点“是”- 继续--
第三步:继续载入修改后的OD,来到 00435E46 修改代码 lea edx,dword ptr ds:[esi+0x1808] 为:lea edx,dword ptr ds:[esi+0xXXXX]
(XXXX = 写入自定义OD标题处的地址 减去 基值004B59E6,例:我写入自定义标题的起始地址是:004B7182,
那么XXXX就等于004B7182减去004B59E6,借助专业计算器算出结果为 179C )那么,这个地址就改为lea edx,dword ptr ds:[esi+0x179C]
最直接的方法就是在 00435E46 处直接修改成如下代码:MOV EDX XXXXXXXXX (代指个性化标题地址),但我认为这样改有个不好的地方,就是可能会在调试的时候性能不稳定..
再次保存后,一款属于自己的个性化标题的OD就完成了----
如果你这就想用它了,那我可以告诉你,前面的修改才是修改OD的第一步,接下来要做的是,将Plugin、UDD两个路径设置成相对(自动获取)路径
代码如下:
1 自动配置UDD、PLUGIN为绝对路径
修改前
00437376 . 68 027F0000 PUSH 7F02 ; /RsrcName = IDC_WAIT
0043737B . 6A 00 PUSH 0 ; |hInst = NULL
0043737D . E8 76810700 CALL <JMP.&USER32.LoadCursorA> ; \LoadCursorA
修改后
00437376 . /E9 55830700 JMP Ollydbg.004AF6D0 ; 修改这里 跳到一个空白的地方,以便写入后面的代码
0043737B > |6A 00 PUSH 0 ; |hInst = NULL
0043737D . |E8 76810700 CALL <JMP.&USER32.LoadCursorA> ; \LoadCursorA
修改方法:
把二进制码 00 70 6C 75 67 69 6E 00 55 44 44 00 粘贴到 4AF6C4
然后修改 00437376 的 PUSH 7F02 为 JMP 004AF6D0 (在这是个例子)
跟随跳转来到空白处,选中下面的二进制代码,再选中空白起始地址 004AF6D0 的这一行,向下拉,因为二进制代码就
下面这些,所以选多点也无所谓,选好后,再二进制粘贴后保存就可以修改成UDD、PLUGIN路径为自动获取路径了--
完整代码:
PUSHAD
MOV EDI,004D3868
XOR EAX,EAX
XOR ECX,ECX
DEC ECX
REPNE SCAS BYTE PTR ES:[EDI]
NEG ECX
DEC ECX
PUSH ECX
MOV EDI,0050AE00
PUSH 004D3868
PUSH EDI
CALL 004AF22E
POP ECX
MOV BYTE PTR DS:[ECX+EDI-1],5C
MOV BYTE PTR DS:[ECX+EDI],0
ADD EDI,100
PUSH ECX
PUSH 0050AE00
PUSH EDI
CALL 004AF22E
POP ECX
PUSH ECX
PUSH 004AF6C5
SUB EDI,100
ADD EDI,ECX
PUSH EDI
CALL 004AF22E
NOP
PUSH 004AF6CC
ADD EDI,100
PUSH EDI
CALL 004AF22E
PUSH 004D53A4
PUSH 0050AF00
PUSH 004B74FD
PUSH 004B747E
CALL 004AF21C
PUSH 004D53A4
PUSH 0050AE00
PUSH 004B7506
PUSH 004B747E
CALL 004AF21C
POP ECX
PUSH ECX
MOV EDI,0050AE00
ADD ECX,7
XOR EAX,EAX
REP STOS BYTE PTR ES:[EDI]
POP ECX
ADD ECX,4
MOV EDI,50AF00
XOR EAX,EAX
REP STOS BYTE PTR ES:[EDI]
POPAD
PUSH 7F02
PUSH 43737B
RETN
二进制代码:
60 BF 68 38 4D 00 33 C0 33 C9 49 F2 AE F7 D9 49 51 BF 00 AE 50 00 68 68 38 4D 00 57 E8 3D FB FF
FF 59 C6 44 39 FF 5C C6 04 39 00 81 C7 00 01 00 00 51 68 00 AE 50 00 57 E8 21 FB FF FF 59 51 68
C5 F6 4A 00 81 EF 00 01 00 00 03 F9 57 E8 0C FB FF FF 90 68 CC F6 4A 00 81 C7 00 01 00 00 57 E8
FA FA FF FF 68 A4 53 4D 00 68 00 AF 50 00 68 FD 74 4B 00 68 7E 74 4B 00 E8 CF FA FF FF 68 A4 53
4D 00 68 00 AE 50 00 68 06 75 4B 00 68 7E 74 4B 00 E8 B6 FA FF FF 68 A4 53 4D 00 68 00 AE 50 00
68 06 75 4B 00 68 7E 74 4B 00 E8 9D FA FF FF 59 51 BF 00 AE 50 00 83 C1 07 33 C0 F3 AA 59 83 C1
04 BF 00 AF 50 00 33 C0 F3 AA 61 68 02 7F 00 00 68 7B 73 43 00 C3
2 解决 OD 格式化 Long Double 错误(如果用了这个就不要用下面的那个)
修改前
0047E7D7 |> \66:8B45 14 MOV AX,WORD PTR SS:[EBP+14]
0047E7DB |. 50 PUSH EAX ; /Arg5
0047E7DC |. FF75 10 PUSH DWORD PTR SS:[EBP+10] ; |Arg4
0047E7DF |. FF75 0C PUSH DWORD PTR SS:[EBP+C] ; |Arg3
0047E7E2 |. 68 94784C00 PUSH Themida_.004C7894 ; |Arg2 = 004C7894 ASCII "%#.19Le"
0047E7E7 |. 52 PUSH EDX ; |Arg1
0047E7E8 |. E8 3F840200 CALL Themida_.004A6C2C ; \Themida_.004A6C2C
修改后
0047E7D7 /E9 B50F0300 JMP Themida_.004AF791 ; 修改这里,跳到一个空白的地方,以便写入后面的代码
0047E7DC |. |FF75 10 PUSH DWORD PTR SS:[EBP+10] ; |Arg4
0047E7DF |. |FF75 0C PUSH DWORD PTR SS:[EBP+C] ; |Arg3
0047E7E2 |. |68 94784C00 PUSH Themida_.004C7894 ; |Arg2 = 004C7894 ASCII "%#.19Le"
0047E7E7 |. |52 PUSH EDX ; |Arg1
0047E7E8 |. |E8 3F840200 CALL Themida_.004A6C2C ; \Themida_.004A6C2C
修改方法:
修改 0047E7D7 的 MOV AX,WORD PTR SS:[EBP+14] 为 JMP 004AF791(这个地址是个变量---)
然后到 004AF791 增加如下代码
增加代码
004AF791 837D 0C FF CMP DWORD PTR SS:[EBP+C],-1
004AF795 75 0A JNZ 004AF7A1
004AF797 837D 10 FF CMP DWORD PTR SS:[EBP+10],-1
004AF79B 75 04 JNZ 004AF7A1
004AF79D 8065 0C FE AND BYTE PTR SS:[EBP+C],0FE
004AF7A1 66:8B45 14 MOV AX,WORD PTR SS:[EBP+14]
004AF7A5 50 PUSH EAX
004AF7A6 ^ E9 31F0FCFF JMP 0047E7DC ****** 留意这行的回跳,如果跳往别处,请手动改回到这行代码
二进制代码:83 7D 0C FF 75 0A 83 7D 10 FF 75 04 80 65 0C FE 66 8B 45 14 50 E9 31 F0 FC FF (二进制代码粘贴后留意最后一行,如果发现最后一行跳转位置错误,要改回来)
解决OutputDebugString("%s")错误
Ctrl+G来到:00461363,直接在原代码上修改成以下的字段--覆盖保存就可以了----
00431363 8D85 98FDFFFF LEA EAX,DWORD PTR SS:[EBP-0x268]
00431369 8038 25 CMP BYTE PTR DS:[EAX],0x25
0043136C 75 03 JNZ SHORT NTOlly.00431371
0043136E C600 26 MOV BYTE PTR DS:[EAX],0x26
00431371 40 INC EAX
00431372 4A DEC EDX
00431373 ^ 75 F4 JNZ SHORT NTOlly.00431369
8D 85 98 FD FF FF 80 38 25 75 03 C6 00 26 40 4A 75 F4
插件预先加载
00438D2F -> jmp 004AF7DD(ollydbg内一段全0区域或新加的节,位置自己找)
004AF7DD代码
pushad
call 00496658
popad
cmp dword ptr [4D578C], 0
jmp 00438D36
61 E8 75 6E FE FF 61 83 3D 8C 57 4D 00 00 E9 46 95 F8 FF
00438EE1处CALL指令 -> NOP
解决 od 格式化 long double 错误(如果用了这个就不要用上面的那个)
004AA2E0 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4]
004AA2E4 8B5424 08 MOV EDX,DWORD PTR SS:[ESP+8]
004AA2E8 E9 63530000 JMP OLLYDBG.004AF650(004AF650是个空白处,这个自己找) //修改此行
004AA2ED 90 NOP
004AA2EE 74 06 JE SHORT OLLYDBG.004AA2F6
004AA2F0 DB2A FLD TBYTE PTR DS:[EDX]
004AA2F2 DF38 FISTP QWORD PTR DS:[EAX]
004AA2F4 9B WAIT
004AA2F5 C3 RETN
004AA2F6 8B0A MOV ECX,DWORD PTR DS:[EDX]
004AA2F8 8908 MOV DWORD PTR DS:[EAX],ECX
004AA2FA 8B4A 04 MOV ECX,DWORD PTR DS:[EDX+4]
004AA2FD 8948 04 MOV DWORD PTR DS:[EAX+4],ECX
004AA300 C3 RETN
在空白处修补代码:
004AF650 66:817A 08 3E40 CMP WORD PTR DS:[EDX+8],403E
004AF656 ^0F84 9AACFFFF JE OLLYDBG.004AA2F6
004AF65C 833A FF CMP DWORD PTR DS:[EDX],-1
004AF65F ^0F85 8BACFFFF JNZ OLLYDBG.004AA2F0
004AF665 837A 04 FF CMP DWORD PTR DS:[EDX+4],-1
004AF669 ^0F85 81ACFFFF JNZ OLLYDBG.004AA2F0
004AF66F 66:817A 08 3D40 CMP WORD PTR DS:[EDX+8],403D
004AF675 ^0F85 75ACFFFF JNZ OLLYDBG.004AA2F0
004AF67B FF02 INC DWORD PTR DS:[EDX]
004AF67D FF42 04 INC DWORD PTR DS:[EDX+4]
004AF680 C642 07 80 MOV BYTE PTR DS:[EDX+7],80
004AF684 66:FF42 08 INC WORD PTR DS:[EDX+8]
004AF688 ^E9 69ACFFFF JMP OLLYDBG.004AA2F6 ******* 一定要记得跳回去
注意:设置路径为相对时,要注意保存备份文件,以便失败后再调试--我在修改时,有些时候也会发生错误,所以修改时,请一定要做好修改后的OD备份,并要细心耐心~~
后面会再出教程,不想做视频教程了,考考大家的思维能力与动手能力~~
美化OD教程
其实美化OD很简单,只需要用到 Restorator 这个工具,将原OD载入后,把原OD的位图一次性替换掉就可以了,如果用 Restorator 打不开位图资源,也可以用 PE Explorer 对位图进行一
个个的修改...
修改相关ANSI教程
其实也只需用到一个工具:FlexHEX 这款工具个人认为修改相关的ANSI最为好用,如将所有的 OllyDBG 修改成 -风 恋- 只需用 FlexHEX 这款工具打开OD Ctrl+H寻找关键词 OllyDBG 后在
下面的文本框中写入要替换的关键词 -风 恋-(注意字节平衡),先点继续,后点替换,直到绕过OllyDBG.INI文件就可以点全部替换, 修改CPU窗口标题也是用它,至于是那个,自己慢慢找
在这说不清楚.....
本期提问:美化OD并修改相关ANSI码,只用到两个工具,请问是那两个工具? 请跟贴回答(大牛路过,考小菜的~~)
最后请注意的是,在初次使用经修改最终定型的OD时,会提示要Path Classname 点是或确定就可以了,不用管它的 如果修改后不能运行的,可以用LordPE进行PE重建,重建后还不行的
只有再次修改OD,直到可以运行-----