ximo基础脱壳教程的脱壳学习记录
之前遇到壳直接脚本自动化处理了,现在初步学习一下手脱壳。(中间一直用的x32dbg,后来有些壳换od脱了)
1、手脱UPX壳
查壳
方法1:单步跟踪
就是一直单步走,如果是向下跳转就跳,如果是向上跳转就不跳,执行原本跳转的下一句。
比如这里向上跳转就不跳,直接在5790ab处按f4跳到这即可
方法2:ESP定律法
在程序自解密或者自解压过程中,对于多数壳,它们会先将当前寄存器状态压栈,如使用pushad/pushfd。
而在解压结束后, 会将之前的寄存器值出栈,如使用popad/popfd,一般标志寄存器不是很重要,一般不做处理。
所以编写加壳软件必须遵守的是栈平衡原理。
因此在寄存器出栈时, 往往程序代码被恢复, 此时硬件断点触发(pop IP),这就是我们要下硬件断点的原因,然后在程序当前位置,只需要一些单步操作,就会到达正确的OEP位置。
也就是说,我们可以这么认为,如果载入程序后只有esp寄存器(eip除外)内容发生变化,那么这个程序多半可以用ESP定律。
单步运行,发现在此处只有esp变红。
转到这个地址
设置一个硬件断点
按f9直接来到大跳处,单步走即为oep
dd XXXXX
hr XXXXX
方法3:2次内存镜像法
在内存中找到程序资源处,在这下个断点,按f9
然后在第一个模块upx0处下个断点,再按f9运行。
接着单步走即可来到oep
方法4:一步直达法(适用于大部分UPX壳和ASpack壳)
原理:有进栈肯定就有出栈
在入栈处搜索出栈指令
直接运行到这
看到了之前的大跳。
脱壳过程(x32dbg自带插件scylla(od脱壳见第9条))
首先将oep修改为我们找到的真正的oep 0047738c,然后依次点击IAT Autosearch和Get Imports得到修复库内容。
点击Dump导出文件,然后点击Fix Dump选择刚刚导出的文件进行修复
发现脱壳成功
2、手脱ASPACK壳
查壳:
脱UPX壳的四种方法对此壳同样适用,下面还有两种其他的方法,其都是利用反编译器自动寻找oep,这里用od实例。
方法一:模拟跟踪
在内存空间中找到包含SFX的这一行
在命令行输入tc eip<xxxxxx
左上角显示跟踪二字,说明程序自动跟踪,等一会就会跳到oep处(方法可能很慢,视程序而定)
方法二:SFX
在选项-调试设置中修改选项,选择第二项。
重载程序,od自动跳到程序的oep。
3、手脱Nspack壳
没什么好说的,esp秒了
4、手脱FSG壳
这里用od脱壳的话需要修复IAT,不过我用的是scylla,脱壳过程中就把IAT修复了,因此这一步也没什么难度
5、手脱PECompact2.X壳
这个壳可以用单步和esp法,还有几种比较特殊的方法
方法一:BP VirtualFree
直接下这个断点
然后无视异常运行
运行到这取消断点
然后回到用户代码
然后查找push 0x8000这个特征码
接着单步跟就到oep了
同样这种命令,但是操作有些区别,先BP VirtualFree,按两次SHIFT+F9,中断后取消断点,Alt+F9返回,单步走。
方法二:下初始地址断点
我们看到程序刚开头的mov指令有0045de74,我们直接在这个地址下断点:BP 0045DE74
运行到此,下面有个return,我们肯定不能让程序跑飞,于是在下一行下断点,即0045de97
然后单步跟,可以到达oep
方法三:bp VirtualAlloc
过程类似方法一,先下断点,然后SHIFT+F9运行,取消断点,ALT+F9到用户界面,向下拉,看到JMP。运行到这
方法四:最后一次异常法
取消所有异常,点shift+f9,点了2次跑飞。出现程序界面,
因此找2-1次即第一次即可。
找SE句柄
转到SE xxxx处,这里是0045DE74,然后找到oep。
6、手脱EZIP壳
没啥好说的,这壳很简单,之前的方法够用。
7、手脱TELock0.98b1壳
三种方法均适用
1、最后一次异常法
2、模拟跟踪
3、两次内存镜像
8、手脱EXE32PACK壳
这个也简单,过了。
9、脱WinUpack加的壳
先给程序加壳并查壳。
拖到x32dbg运行。
这程序前边当过例子,我们单步走很自然发现一个大跳40A41E为oep,但这里显示跳转不会执行。
可以按f8直到eax==0满足跳转的条件,这个过程是程序加载导入表。更方便的是用到加条件断点的方法,可以直接运行到此,使跳转可用。
进入oep重复上述脱壳过程,出现问题。
重新找了很多资料尝试,依旧没解决,放到虚拟机试试。
这里虚拟机显示是已经脱壳了的
在虚拟机用od重新脱一遍壳,然后用loadpe和rec脱壳,最后脱壳成功,可以运行。
先在loadpe找到进程,修正镜像大小,然后完整转存
rec修正oep,点击自动查找IAT和获取输入表,然后修复上一步dump出的文件
脱壳成功
10:脱壳的基本思路及小结
壳的分类:压缩壳、加密壳
脱壳的基本方法:
1。单步
2。ESP定律
3。内存镜像
4。模拟跟踪(2类)
5。最后一次异常
1)SFX跟踪
2)tc eip<XXXX
6。特殊
常见语言的入口点:
VB:
004012D4 > 68 54474000 push QQ个性网.00404754 004012D9 E8 F0FFFFFF call <jmp.&MSVBVM60.#100> 004012DE 0000 add byte ptr ds:[eax],al 004012E0 0000 add byte ptr ds:[eax],al 004012E2 0000 add byte ptr ds:[eax],al 004012E4 3000 xor byte ptr ds:[eax],al 004012E6 0000 add byte ptr ds:[eax],al 004012E8 48 dec eax
delphi:
004A5C54 > 55 push ebp 004A5C55 8BEC mov ebp,esp 004A5C57 83C4 F0 add esp,-10 004A5C5A B8 EC594A00 mov eax,openpro.004A59EC
BC++:
00401678 > /EB 10 jmp short btengine.0040168A 0040167A |66:623A bound di,dword ptr ds:[edx] 0040167D |43 inc ebx 0040167E |2B2B sub ebp,dword ptr ds:[ebx] 00401680 |48 dec eax 00401681 |4F dec edi 00401682 |4F dec edi 00401683 |4B dec ebx 00401684 |90 nop 00401685 -|E9 98005400 jmp 00941722 0040168A \A1 8B005400 mov eax,dword ptr ds:[54008B] 0040168F C1E0 02 shl eax,2 00401692 A3 8F005400 mov dword ptr ds:[54008F],eax 00401697 52 push edx 00401698 6A 00 push 0 0040169A E8 99D01300 call <jmp.&KERNEL32.GetModuleHandleA> 0040169F 8BD0 mov edx,eax
VC++:
0040A41E > 55 push ebp 0040A41F 8BEC mov ebp,esp 0040A421 6A FF push -1 0040A423 68 C8CB4000 push 跑跑排行.0040CBC8 0040A428 68 A4A54000 push <jmp.&MSVCRT._except_handler3> 0040A42D 64:A1 00000000 mov eax,dword ptr fs:[0] 0040A433 50 push eax 0040A434 64:8925 0000000>mov dword ptr fs:[0],esp 0040A43B 83EC 68 sub esp,68 0040A43E 53 push ebx 0040A43F 56 push esi 0040A440 57 push edi
MASM(汇编):
004035C9 > 6A 00 push 0 004035CB E8 A20A0000 call <jmp.&kernel32.GetModuleHandleA> 004035D0 A3 5B704000 mov dword ptr ds:[40705B],eax 004035D5 68 80000000 push 80 004035DA 68 2C754000 push 11.0040752C 004035DF FF35 5B704000 push dword ptr ds:[40705B] 004035E5 E8 820A0000 call <jmp.&kernel32.GetModuleFileNameA> 004035EA E8 87070000 call 11.00403D76 004035EF 6A 00 push 0 004035F1 68 0B364000 push 11.0040360B 004035F6 6A 00 push 0 004035F8 6A 64 push 64 004035FA FF35 5B704000 push dword ptr ds:[40705B]
11、附加数据的处理方法
查壳,示例程序是一个北斗壳
可以看到有一个附加:binary,表明有附加数据。换一个查壳软件,可以看到有overlay,表明有附加数据。
我们正常脱完壳的程序是没有附加数据的,因此我们要把它加上(如果有用的话)
可以用overlay最终版这个软件,但是在电脑上报毒,于是考虑用十六进制编辑器手动附加数据,这里用010editor
在die中pe模块找到数据位置,也可以用loadpe等其他软件。文件偏移是400,大小为8800,总偏移为8c00
打开010,跳转到8c00,可以发现上边的数据全为0,下边为附加数据
然后复制这段数据,打开脱壳后的exe,把这段数据粘贴到末尾,另存为导出即可。
可以发现成功附加。
12、自校验的去除方法
示例程序为北斗壳
脱壳,运行脱壳后的程序
提示文件被非法修改
查一下壳,发现脱壳之后程序仍然不正常
说明可能存在自校验。
检查方法:开两个调试器,分别调试源程序和脱壳之后的程序,比较跳转部分。
两个调试器都在此处下断点:bp CreateFileA
然后发现在此处有分歧,脱壳后的程序满足跳转条件,而源程序不跳转。因此修改脱壳后的程序,使其不跳转。可以把jne给nop掉,可以修改成je,也可以修改cmp,总之将其逻辑修改成和源程序一致即可。
然后导出即可,发现正常运行
13、脱壳的简单应用——软件的汉化及DIY
为什么要脱壳?
不脱壳在破解过程中无法进行,比如我们用resource hacker修改exe文件时,如果程序有壳那么软件会报错。
因此如果程序有壳,就要先脱壳,再对软件进行破解、汉化等操作。
工具:
resource hacker
peexplorer
getvbres ............VB类的汉化、DIY
xnresource
等等
vb程序修改例子
例如我们将这个vb程序进行修改
进行简单的diy
VC程序diy
使用resource hacker加载脱壳后的程序,依然提示有壳
可能是没脱干净,使用软件修复
之后可以正常载入
此程序原本对话框如下
我们可以在dialog处对其进行修改
修改之后
c++程序diy
用resource hacker进行修改看不到c++特有的rc数据,因此需要使用peexplorer进行修改,这里不放图了。
14、手脱ASPACK变形壳
先把例子加上壳,od载入
这个变性壳esp定律不适用,f9运行一下程序直接跑飞,因此直接单步法可以直接到达oep,近call f7跟进,远call f8步过,大跨度跳转oep。
脱变形壳加壳工具使用最后一次异常法。
15、学会用脚本进行脱壳
这个已经无师自通了= =
但不能尽信脱壳脚本,有点变形可能就脱壳失败,还需要手动检查。
16、脱ACProtect1.32(无Stolen Code)
步骤:1。设置异常,隐藏OD
只保留内存访问异常。
然后strong od取消勾选Skip Some Exception可以隐藏od
2。SE处下内存访问断点
来到这,堆栈窗口找se句柄
右键在数据窗口中跟随,下内存访问断点
3。SHIFT+F9,F2,再一次SHIFT+F9,下断,再一次SHIFT+F9
4,取消所有断点
不要忘记删除内存断点
5,内存,.text,00401000。F2,SHIFT+F9
6,直达OEP!!
7。修复,脱壳成功
17、脱ACProtect(存在Stolen Code)
查壳
按照之前的步骤脱壳,运行到此
然后在内存窗口中设置断点,运行到oep。
这里存在stolen code,正常的oep应该有push ebp,因此我们需要修复代码。
重新来一遍运行到return
在调试-设置条件中设置命令是一个 push ebp
然后跟踪步入
然后od会自动跟踪,等一会就会跟踪到代码的位置。
然后复制这三行代码,使用二进制复制,到达oep处,在上边二进制粘贴这段代码,并且在此处设置eip
然后脱壳即可。
脱壳时遇到了问题,1.7版本的importrec在等级三跟踪下无法初始化,换1.6版本英文原版可以。
最终脱壳成功。
18、ACProtect之寻找丢失的Stolen Code
关于Stolen Code的简单解释
壳为了在自己被消灭时从程序中带走了一些本不属于自己的东西
常见的就是在偷取程序入口处若干字节,使程序在脱壳后不能正常运行,因此脱壳后还要还原这些被偷掉的字节。这些就是stolen code。
1。设置异常(忽略除INT3中断的所有异常),隐藏OD
先设置异常:
2。来到入口点,F9运行
004AC000 > 60 pushad //记住这个 004AC001 4E dec esi 004AC002 D3D6 rcl esi,cl 004AC004 4E dec esi 004AC005 66:D3E8 shr ax,cl 004AC008 4E dec esi 004AC009 8BC3 mov eax,ebx 004AC00B 48 dec eax
3。程序中断在这里
004BAB23 90 nop //这其实也是最后一次异常 004BAB24 64:67:8F06 0000 pop dword ptr fs:[0] 004BAB2A 83C4 04 add esp,4 004BAB2D 60 pushad 004BAB2E E8 00000000 call NetClean.004BAB33 004BAB33 5E pop esi 004BAB34 83EE 06 sub esi,6 004BAB37 B9 5B000000 mov ecx,5B 004BAB3C 29CE sub esi,ecx 004BAB3E BA 09E5B87E mov edx,7EB8E509 004BAB43 C1E9 02 shr ecx,2 004BAB46 83E9 02 sub ecx,2 004BAB49 83F9 00 cmp ecx,0 004BAB4C 7C 1A jl short NetClean.004BAB68 004BAB4E 8B048E mov eax,dword ptr ds:[esi+ecx*4]
4。看堆栈,找SE句柄,数据窗口跟随,下硬件访问断点,shift+F9
5.下断,再次SHIFT+F9,下断,再次SHIFT+F9,取消所有断点,直接F4到RETN处
第一次我们先来到假的oep看看,当然你也可以直接进行第六步,我们执行第六步时eip应该是在return处。可以发现这段oep确实被偷取了代码。
6。下d 12ffc0,下硬件断点。SHIFT+F9。(只针对与acprotect壳)
7。记下Stolen Code 。
004C9B31 55 push ebp 004C9B32 8BEC mov ebp,esp 004C9B34 6A FF push -1
8。找到内存,在00401000处下断,F2,SHIFT+F9。
如果我们直接向上拉的话,有可能代码会混淆,因此我们先右键分析代码,然后ctrl+↑就不会混淆
004431F9 68 D8B24400 push NetClean.0044B2D8 //这里其实是假的OEP!! 004431FE 68 B4334400 push NetClean.004433B4 ; jmp 到 00443203 64:A1 00000000 mov eax,dword ptr fs:[0] 00443209 50 push eax 0044320A 64:8925 0000000>mov dword ptr fs:[0],esp 00443211 83EC 68 sub esp,68 00443214 53 push ebx
9。写入真实的代码!!
10。OD插件脱壳,注意,修正OEP地址!!
11。IR修复,用等级3。不能修复的CUT掉。抓取修复。程序还是报错!
这是由于高版本acprotect壳的自保护功能。
12。用od打开脱壳后的程序做下处理。来到壳的入口。也就是第一步记下的地址
CTRL+G,004AC000
13,写入真的OEP代码。
写入原本的oep的三行代码以绕过壳的自检测,并且加个无条件跳转跳到真正的oep处。
14。Lord PE修正入口点
修正入口点和源程序一致
15。保存,脱壳成功!
19、脱ACProtect V2.0.X
脱壳qq个性签名查看器(VB程序)
套路和之前一样,不放图了。
1。忽略除内存访问的所有断点,隐藏OD
2。F9,找SE句柄,数据窗口跟随,下内存访问断点
3。SHIFT+F9,F2,再SHIFT+F9,F2,再次SHIFT+F9,取消所有断点。
4。运行到RETN
5。打开内存,0401000处下F2断点。SHIFT+F9
6。来到假的OEP。
7。修正代码
vb程序oep前两句为push和call,上边是一堆jmp
这里push的是程序的地址,call的是最后一个jmp的地址
8。脱壳,修复
9。OK~!!脱壳完成
脱壳delphi程序
在调试时发现无论设置何种异常程序均一下跑飞,因此要选择其他方法。
1.下断:bp GetCurrentProcessId,F9
来到这
2。用Lord PE查OD的PID。
3。把1中的代码改为
7C809940 > B8 3C150000 mov eax,0f34 (当然,PID号每次都会变)
7C809945 90 nop
7C809946 90 nop
7C809947 90 nop
7C809948 90 nop
7C809949 C3 retn
4。下断,BP GetModuleHandleA,F9
7C80B6C1 > 8BFF mov edi,edi //断在这
7C80B6C3 55 push ebp
7C80B6C4 8BEC mov ebp,esp
7C80B6C6 837D 08 00 cmp dword ptr ss:[ebp+8],0
7C80B6CA 74 18 je short kernel32.7C80B6E4
7C80B6CC FF75 08 push dword ptr ss:[ebp+8]
7C80B6CF E8 C0290000 call kernel32.7C80E094
7C80B6D4 85C0 test eax,eax
7C80B6D6 74 08 je short kernel32.7C80B6E0
7C80B6D8 FF70 04 push dword ptr ds:[eax+4]
5。来到内存,在CODE断下内存访问断点,F9运行,出现NAG窗口,点确定后,来到OEP!!!
00402150 55 push ebp //OEP!!
00402151 8BEC mov ebp,esp
00402153 83C4 F0 add esp,-10
00402156 53 push ebx
00402157 B8 10214000 mov eax,ACP_Feed.00402110
0040215C E8 4FFCFFFF call ACP_Feed.00401DB0
00402161 68 C4214000 push ACP_Feed.004021C4 ; ASCII "ACProtect Feedback Form"
00402166 6A 00 push 0
00402168 6A 00 push 0
6。脱壳,修复。用等级3!或者手动找MessageBoxA
7。抓取,脱壳成功!!
20、另类方法解ACProtect
由于一直中断不下来,先咕了。
21、ACProtect之补区段
1、忽略所有异常
2、打开内存镜像,在.rdata处F2,SHIFT+F9
没有.rdata用.idata
3、由于这个代码会对messagebox和RegisterHotKey两个api处理,我们要nop掉相关代码
0043383D 8B46 0C mov eax,dword ptr ds:[esi+C] //中断在这里 00433840 0BC0 or eax,eax 00433842 0F84 25020000 je NgaMy.00433A6D 00433848 8366 0C 00 and dword ptr ds:[esi+C],0 0043384C 03C2 add eax,edx 0043384E 8BD8 mov ebx,eax 00433850 56 push esi 00433851 57 push edi 00433852 50 push eax 00433853 8BF3 mov esi,ebx 00433855 8BFB mov edi,ebx 00433857 AC lods byte ptr ds:[esi] 00433858 C0C0 03 rol al,3 0043385B AA stos byte ptr es:[edi] 0043385C 803F 00 cmp byte ptr ds:[edi],0 0043385F ^ 75 F6 jnz short NgaMy.00433857 00433861 58 pop eax 00433862 5F pop edi 00433863 5E pop esi 00433864 50 push eax 00433865 FF95 90E24100 call dword ptr ss:[ebp+41E290] 0043386B 0BC0 or eax,eax 0043386D 75 43 jnz short NgaMy.004338B2 0043386F 90 nop 00433870 90 nop 00433871 90 nop 00433872 90 nop 00433873 53 push ebx 00433874 FF95 94E24100 call dword ptr ss:[ebp+41E294] 0043387A 0BC0 or eax,eax 0043387C 75 34 jnz short NgaMy.004338B2 0043387E 90 nop 0043387F 90 nop 00433880 90 nop 00433881 90 nop 00433882 8B95 1FFC4000 mov edx,dword ptr ss:[ebp+40FC1F] 00433888 0195 1D1F4000 add dword ptr ss:[ebp+401F1D],edx 0043388E 0195 211F4000 add dword ptr ss:[ebp+401F21],edx 00433894 6A 00 push 0 00433896 FFB5 1D1F4000 push dword ptr ss:[ebp+401F1D] 0043389C FFB5 211F4000 push dword ptr ss:[ebp+401F21] 004338A2 6A 00 push 0 004338A4 FF95 9CE24100 call dword ptr ss:[ebp+41E29C] 004338AA 6A 00 push 0 004338AC FF95 98E24100 call dword ptr ss:[ebp+41E298] 004338B2 60 pushad 004338B3 2BC0 sub eax,eax 004338B5 8803 mov byte ptr ds:[ebx],al 004338B7 43 inc ebx 004338B8 3803 cmp byte ptr ds:[ebx],al 004338BA ^ 75 F9 jnz short NgaMy.004338B5 004338BC 61 popad 004338BD 8985 17FC4000 mov dword ptr ss:[ebp+40FC17],eax 004338C3 C785 1BFC4000 00000>mov dword ptr ss:[ebp+40FC1B],0 004338CD 8B95 1FFC4000 mov edx,dword ptr ss:[ebp+40FC1F] 004338D3 8B06 mov eax,dword ptr ds:[esi] 004338D5 0BC0 or eax,eax 004338D7 75 07 jnz short NgaMy.004338E0 004338D9 90 nop 004338DA 90 nop 004338DB 90 nop 004338DC 90 nop 004338DD 8B46 10 mov eax,dword ptr ds:[esi+10] 004338E0 03C2 add eax,edx 004338E2 0385 1BFC4000 add eax,dword ptr ss:[ebp+40FC1B] 004338E8 8B18 mov ebx,dword ptr ds:[eax] 004338EA 8B7E 10 mov edi,dword ptr ds:[esi+10] 004338ED 03FA add edi,edx 004338EF 03BD 1BFC4000 add edi,dword ptr ss:[ebp+40FC1B] 004338F5 85DB test ebx,ebx 004338F7 0F84 62010000 je NgaMy.00433A5F 004338FD F7C3 00000080 test ebx,80000000 00433903 75 1D jnz short NgaMy.00433922 00433905 90 nop 00433906 90 nop 00433907 90 nop 00433908 90 nop 00433909 03DA add ebx,edx 0043390B 83C3 02 add ebx,2 0043390E 56 push esi 0043390F 57 push edi 00433910 50 push eax 00433911 8BF3 mov esi,ebx 00433913 8BFB mov edi,ebx 00433915 AC lods byte ptr ds:[esi] 00433916 C0C0 03 rol al,3 00433919 AA stos byte ptr es:[edi] 0043391A 803F 00 cmp byte ptr ds:[edi],0 0043391D ^ 75 F6 jnz short NgaMy.00433915 0043391F 58 pop eax 00433920 5F pop edi 00433921 5E pop esi 00433922 3B9D 1FFC4000 cmp ebx,dword ptr ss:[ebp+40FC1F] 00433928 7C 11 jl short NgaMy.0043393B 0043392A 90 nop 0043392B 90 nop 0043392C 90 nop 0043392D 90 nop 0043392E 83BD 02244000 00 cmp dword ptr ss:[ebp+402402],0 00433935 75 0A jnz short NgaMy.00433941 00433937 90 nop 00433938 90 nop 00433939 90 nop 0043393A 90 nop 0043393B 81E3 FFFFFF0F and ebx,0FFFFFFF 00433941 53 push ebx 00433942 FFB5 17FC4000 push dword ptr ss:[ebp+40FC17] 00433948 FF95 8CE24100 call dword ptr ss:[ebp+41E28C] 0043394E 3B9D 1FFC4000 cmp ebx,dword ptr ss:[ebp+40FC1F] 00433954 7C 0F jl short NgaMy.00433965 00433956 90 nop 00433957 90 nop 00433958 90 nop 00433959 90 nop 0043395A 60 pushad 0043395B 2BC0 sub eax,eax 0043395D 8803 mov byte ptr ds:[ebx],al 0043395F 43 inc ebx 00433960 3803 cmp byte ptr ds:[ebx],al 00433962 ^ 75 F9 jnz short NgaMy.0043395D 00433964 61 popad 00433965 0BC0 or eax,eax 00433967 ^ 0F84 15FFFFFF je NgaMy.00433882 0043396D 3B85 9CE24100 cmp eax,dword ptr ss:[ebp+41E29C] //处理MessageBoxA 00433973 74 20 je short NgaMy.00433995 //NOP掉 00433975 90 nop 00433976 90 nop 00433977 90 nop 00433978 90 nop 00433979 3B85 9D014100 cmp eax,dword ptr ss:[ebp+41019D] //处理RegisterHotKey 0043397F 74 09 je short NgaMy.0043398A //NOP掉 00433981 90 nop 00433982 90 nop 00433983 90 nop 00433984 90 nop 00433985 EB 14 jmp short NgaMy.0043399B 00433987 90 nop 00433988 90 nop 00433989 90 nop 0043398A 8D85 0A024100 lea eax,dword ptr ss:[ebp+41020A] 00433990 EB 09 jmp short NgaMy.0043399B 00433992 90 nop 00433993 90 nop 00433994 90 nop 00433995 8D85 24024100 lea eax,dword ptr ss:[ebp+410224] 0043399B 56 push esi 0043399C FFB5 17FC4000 push dword ptr ss:[ebp+40FC17] 004339A2 5E pop esi 004339A3 39B5 FA234000 cmp dword ptr ss:[ebp+4023FA],esi 004339A9 74 15 je short NgaMy.004339C0 004339AB 90 nop 004339AC 90 nop 004339AD 90 nop 004339AE 90 nop 004339AF 39B5 FE234000 cmp dword ptr ss:[ebp+4023FE],esi 004339B5 74 09 je short NgaMy.004339C0 004339B7 90 nop 004339B8 90 nop 004339B9 90 nop 004339BA 90 nop 004339BB EB 63 jmp short NgaMy.00433A20 004339BD 90 nop 004339BE 90 nop 004339BF 90 nop 004339C0 80BD D2594100 00 cmp byte ptr ss:[ebp+4159D2],0 004339C7 74 57 je short NgaMy.00433A20 //magic跳,改JMP 004339C9 90 nop 004339CA 90 nop 004339CB 90 nop 004339CC 90 nop 004339CD EB 07 jmp short NgaMy.004339D6 004339CF 90 nop 004339D0 90 nop 004339D1 90 nop 004339D2 0100 add dword ptr ds:[eax],eax 004339D4 0000 add byte ptr ds:[eax],al 004339D6 8BB5 E4FC4000 mov esi,dword ptr ss:[ebp+40FCE4] 004339DC 83C6 0D add esi,0D 004339DF 81EE EA1B4000 sub esi,NgaMy.00401BEA 004339E5 2BF5 sub esi,ebp 004339E7 83FE 00 cmp esi,0 004339EA 7F 34 jg short NgaMy.00433A20 004339EC 90 nop 004339ED 90 nop 004339EE 90 nop 004339EF 90 nop
4、在00401000处内存访问断点,SHIFT+F9
00403D38 68 8C3D4000 push NgaMy.00403D8C //中断在这里 00403D3D 64:A1 00000000 mov eax,dword ptr fs:[0] 00403D43 50 push eax 00403D44 8B4424 10 mov eax,dword ptr ss:[esp+10] 00403D48 896C24 10 mov dword ptr ss:[esp+10],ebp 00403D4C 8D6C24 10 lea ebp,dword ptr ss:[esp+10] 00403D50 2BE0 sub esp,eax 00403D52 53 push ebx 00403D53 56 push esi 00403D54 57 push edi 00403D55 8B45 F8 mov eax,dword ptr ss:[ebp-8] 00403D58 8965 E8 mov dword ptr ss:[ebp-18],esp 00403D5B 50 push eax 00403D5C 8B45 FC mov eax,dword ptr ss:[ebp-4] 00403D5F C745 FC FFFFFFFF mov dword ptr ss:[ebp-4],-1 00403D66 8945 F8 mov dword ptr ss:[ebp-8],eax 00403D69 8D45 F0 lea eax,dword ptr ss:[ebp-10] 00403D6C 64:A3 00000000 mov dword ptr fs:[0],eax 00403D72 C3 retn //运行到这里,然后F8
5、接着SHIFT+F9
00405560 3D 00100000 cmp eax,1000 //中断在这里 00405565 73 0E jnb short NgaMy.00405575 00405567 F7D8 neg eax 00405569 03C4 add eax,esp 0040556B 83C0 04 add eax,4 0040556E 8500 test dword ptr ds:[eax],eax 00405570 94 xchg eax,esp 00405571 8B00 mov eax,dword ptr ds:[eax] 00405573 50 push eax 00405574 C3 retn //F4,然后F8
6。再SHIFT+F9
0040305C 83F9 02 cmp ecx,2 //中断在这里,这里就是假OEP 0040305F 74 0C je short NgaMy.0040306D 00403061 81CE 00800000 or esi,8000 00403067 8935 B0DE4000 mov dword ptr ds:[40DEB0],esi 0040306D C1E0 08 shl eax,8 00403070 03C2 add eax,edx 00403072 A3 B4DE4000 mov dword ptr ds:[40DEB4],eax 00403077 33F6 xor esi,esi 00403079 56 push esi 0040307A 8B3D B0A04000 mov edi,dword ptr ds:[40A0B0] ; kernel32.GetModuleHandleA 00403080 FFD7 call edi 00403082 66:8138 4D5A cmp word ptr ds:[eax],5A4D
7。脱壳,修复
8、重新载入,在pushad 下用ESP定律
hr 0012ffa4,SHIFT+F9(5次),来到这里 004365F4 8915 F5FD4100 mov dword ptr ds:[41FDF5],edx ; ntdll.KiFastSystemCallRet 004365FA FF35 F5FD4100 push dword ptr ds:[41FDF5] 00436600 8F05 2DFE4100 pop dword ptr ds:[41FE2D] 00436606 FF35 2DFE4100 push dword ptr ds:[41FE2D] 0043660C C70424 60000000 mov dword ptr ss:[esp],60 00436613 56 push esi 00436614 890C24 mov dword ptr ss:[esp],ecx 00436617 68 8DFD4100 push NgaMy.0041FD8D 0043661C 59 pop ecx 0043661D 8919 mov dword ptr ds:[ecx],ebx 0043661F 8B0C24 mov ecx,dword ptr ss:[esp] 00436622 8F05 ADFE4100 pop dword ptr ds:[41FEAD] 00436628 FF35 8DFD4100 push dword ptr ds:[41FD8D] 0043662E C70424 48A24000 mov dword ptr ss:[esp],NgaMy.0040A248 00436635 8905 B9FD4100 mov dword ptr ds:[41FDB9],eax 0043663B FF35 B9FD4100 push dword ptr ds:[41FDB9] 00436641 90 nop 00436642 90 nop 00436643 60 pushad 00436644 E8 01000000 call NgaMy.0043664A //F4到这里,然后用ESP pushad 上面的就是Stolen Code(NOP可以不复制),复制下来: 89 15 F5 FD 41 00 FF 35 F5 FD 41 00 8F 05 2D FE 41 00 FF 35 2D FE 41 00 C7 04 24 60 00 00 00 56 89 0C 24 68 8D FD 41 00 59 89 19 8B 0C 24 8F 05 AD FE 41 00 FF 35 8D FD 41 00 C7 04 24 48 A2 40 00 89 05 B9 FD 41 00 FF 35 B9 FD 41 00
9、hr 0012ff98,F9
00436F16 68 1DFD4100 push NgaMy.0041FD1D 00436F1B 58 pop eax 00436F1C 8930 mov dword ptr ds:[eax],esi 00436F1E 8F05 79FC4100 pop dword ptr ds:[41FC79] 00436F24 8B05 79FC4100 mov eax,dword ptr ds:[41FC79] 00436F2A FF35 1DFD4100 push dword ptr ds:[41FD1D] 00436F30 56 push esi 00436F31 891C24 mov dword ptr ss:[esp],ebx 00436F34 C70424 383D4000 mov dword ptr ss:[esp],NgaMy.00403D38 00436F3B 8B3424 mov esi,dword ptr ss:[esp] 00436F3E 8F05 A5FE4100 pop dword ptr ds:[41FEA5] 00436F44 8905 01FF4100 mov dword ptr ds:[41FF01],eax 00436F4A FF35 01FF4100 push dword ptr ds:[41FF01] 00436F50 891C24 mov dword ptr ss:[esp],ebx 00436F53 56 push esi 00436F54 C70424 45FE4100 mov dword ptr ss:[esp],NgaMy.0041FE45 00436F5B 8F05 31FE4100 pop dword ptr ds:[41FE31] 00436F61 90 nop 00436F62 90 nop 00436F63 60 pushad 00436F64 E8 01000000 call NgaMy.00436F6A 都是同样处理!! 68 1D FD 41 00 58 89 30 8F 05 79 FC 41 00 8B 05 79 FC 41 00 FF 35 1D FD 41 00 56 89 1C 24 C7 04 24 38 3D 40 00 8B 34 24 8F 05 A5 FE 41 00 89 05 01 FF 41 00 FF 35 01 FF 41 00 89 1C 24 56 C7 04 24 45 FE 41 00 8F 05 31 FE 41 00
10、hr 0012ff94,F9
0043783F 8B1D 31FE4100 mov ebx,dword ptr ds:[41FE31] ; NgaMy.0041FE45 00437845 8933 mov dword ptr ds:[ebx],esi 00437847 8F05 39FC4100 pop dword ptr ds:[41FC39] 0043784D FF35 39FC4100 push dword ptr ds:[41FC39] 00437853 5B pop ebx 00437854 8F05 09FE4100 pop dword ptr ds:[41FE09] 0043785A 891D 21FC4100 mov dword ptr ds:[41FC21],ebx 00437860 FF35 21FC4100 push dword ptr ds:[41FC21] 00437866 C705 19FC4100 09FE4>mov dword ptr ds:[41FC19],NgaMy.0041FE09 00437870 8B1D 19FC4100 mov ebx,dword ptr ds:[41FC19] 00437876 8B33 mov esi,dword ptr ds:[ebx] 00437878 8F05 FDFB4100 pop dword ptr ds:[41FBFD] 0043787E 8B1D FDFB4100 mov ebx,dword ptr ds:[41FBFD] 00437884 FF15 45FE4100 call dword ptr ds:[41FE45] 0043788A 90 nop 0043788B 90 nop 0043788C 60 pushad 0043788D E8 01000000 call NgaMy.00437893 8B 1D 31 FE 41 00 89 33 8F 05 39 FC 41 00 FF 35 39 FC 41 00 5B 8F 05 09 FE 41 00 89 1D 21 FC 41 00 FF 35 21 FC 41 00 C7 05 19 FC 41 00 09 FE 41 00 8B 1D 19 FC 41 00 8B 33 8F 05 FD FB 41 00 8B 1D FD FB 41 00 FF 15 45 FE 41 00
11、hr 0012ff24,F9(多几次)
0043813D 890D B1FD4100 mov dword ptr ds:[41FDB1],ecx 00438143 FF35 B1FD4100 push dword ptr ds:[41FDB1] 00438149 8F05 B5FC4100 pop dword ptr ds:[41FCB5] 0043814F FF35 B5FC4100 push dword ptr ds:[41FCB5] 00438155 56 push esi 00438156 BE FDFC4100 mov esi,NgaMy.0041FCFD 0043815B 893E mov dword ptr ds:[esi],edi 0043815D 5E pop esi 0043815E FF35 FDFC4100 push dword ptr ds:[41FCFD] 00438164 68 94000000 push 94 00438169 8F05 E5FC4100 pop dword ptr ds:[41FCE5] 0043816F FF35 E5FC4100 push dword ptr ds:[41FCE5] 00438175 5F pop edi 00438176 893D 3DFE4100 mov dword ptr ds:[41FE3D],edi 0043817C FF35 3DFE4100 push dword ptr ds:[41FE3D] 00438182 8B0C24 mov ecx,dword ptr ss:[esp] 00438185 8F05 7DFE4100 pop dword ptr ds:[41FE7D] 0043818B 90 nop 0043818C 90 nop 0043818D 60 pushad 0043818E 50 push eax 89 0D B1 FD 41 00 FF 35 B1 FD 41 00 8F 05 B5 FC 41 00 FF 35 B5 FC 41 00 56 BE FD FC 41 00 89 3E 5E FF 35 FD FC 41 00 68 94 00 00 00 8F 05 E5 FC 41 00 FF 35 E5 FC 41 00 5F 89 3D 3D FE 41 00 FF 35 3D FE 41 00 8B 0C 24 8F 05 7D FE 41 00
12、hr 0012ff1c,F9(多试几次)
00438ACD 8B3C24 mov edi,dword ptr ss:[esp] 00438AD0 8F05 79FD4100 pop dword ptr ds:[41FD79] ; ntdll.7C930738 00438AD6 8935 25FC4100 mov dword ptr ds:[41FC25],esi 00438ADC FF35 25FC4100 push dword ptr ds:[41FC25] 00438AE2 890C24 mov dword ptr ss:[esp],ecx 00438AE5 8B3C24 mov edi,dword ptr ss:[esp] 00438AE8 8F05 B9FC4100 pop dword ptr ds:[41FCB9] 00438AEE 8F05 19FE4100 pop dword ptr ds:[41FE19] 00438AF4 8905 89FD4100 mov dword ptr ds:[41FD89],eax 00438AFA FF35 89FD4100 push dword ptr ds:[41FD89] 00438B00 57 push edi 00438B01 BF 19FE4100 mov edi,NgaMy.0041FE19 00438B06 8BC7 mov eax,edi 00438B08 5F pop edi 00438B09 8B08 mov ecx,dword ptr ds:[eax] 00438B0B 8F05 95FC4100 pop dword ptr ds:[41FC95] 00438B11 8B05 95FC4100 mov eax,dword ptr ds:[41FC95] 00438B17 53 push ebx 00438B18 90 nop 00438B19 90 nop 00438B1A 60 pushad 00438B1B 50 push eax 8B 3C 24 8F 05 79 FD 41 00 89 35 25 FC 41 00 FF 35 25 FC 41 00 89 0C 24 8B 3C 24 8F 05 B9 FC 41 00 8F 05 19 FE 41 00 89 05 89 FD 41 00 FF 35 89 FD 41 00 57 BF 19 FE 41 00 8B C7 5F 8B 08 8F 05 95 FC 41 00 8B 05 95 FC 41 00 53
13、hr 0012ff20,F9
004393FF 8F05 5DFE4100 pop dword ptr ds:[41FE5D] ; 0012FF40 00439405 FF35 5DFE4100 push dword ptr ds:[41FE5D] 0043940B 890C24 mov dword ptr ss:[esp],ecx 0043940E 893D 91FE4100 mov dword ptr ds:[41FE91],edi 00439414 FF35 91FE4100 push dword ptr ds:[41FE91] 0043941A 8F05 81FC4100 pop dword ptr ds:[41FC81] 00439420 891D 89FE4100 mov dword ptr ds:[41FE89],ebx 00439426 FF35 89FE4100 push dword ptr ds:[41FE89] 0043942C 68 81FC4100 push NgaMy.0041FC81 00439431 5B pop ebx 00439432 8B0B mov ecx,dword ptr ds:[ebx] 00439434 8F05 C9FC4100 pop dword ptr ds:[41FCC9] 0043943A 8B1D C9FC4100 mov ebx,dword ptr ds:[41FCC9] 00439440 57 push edi 00439441 890424 mov dword ptr ss:[esp],eax 00439444 890C24 mov dword ptr ss:[esp],ecx 00439447 8B0424 mov eax,dword ptr ss:[esp] 0043944A 90 nop 0043944B 90 nop 0043944C 60 pushad 0043944D 76 03 jbe short NgaMy.00439452 8F 05 5D FE 41 00 FF 35 5D FE 41 00 89 0C 24 89 3D 91 FE 41 00 FF 35 91 FE 41 00 8F 05 81 FC 41 00 89 1D 89 FE 41 00 FF 35 89 FE 41 00 68 81 FC 41 00 5B 8B 0B 8F 05 C9 FC 41 00 8B 1D C9 FC 41 00 57 89 04 24 89 0C 24 8B 04 24
14、hr 0012ff1c,F9
00439D39 8F05 D5FD4100 pop dword ptr ds:[41FDD5] ; ntdll.KiFastSystemCallRet 00439D3F 8B0C24 mov ecx,dword ptr ss:[esp] 00439D42 8F05 4DFC4100 pop dword ptr ds:[41FC4D] 00439D48 50 push eax 00439D49 891424 mov dword ptr ss:[esp],edx 00439D4C 8F05 BDFE4100 pop dword ptr ds:[41FEBD] 00439D52 FF35 BDFE4100 push dword ptr ds:[41FEBD] 00439D58 51 push ecx 00439D59 B9 DDFD4100 mov ecx,NgaMy.0041FDDD 00439D5E 8939 mov dword ptr ds:[ecx],edi 00439D60 59 pop ecx 00439D61 FF35 DDFD4100 push dword ptr ds:[41FDDD] 00439D67 C705 A9FE4100 60554>mov dword ptr ds:[41FEA9],NgaMy.00405560 00439D71 FF35 A9FE4100 push dword ptr ds:[41FEA9] 00439D77 8B3C24 mov edi,dword ptr ss:[esp] 00439D7A 8F05 95FD4100 pop dword ptr ds:[41FD95] 00439D80 891D 29FD4100 mov dword ptr ds:[41FD29],ebx 00439D86 90 nop 00439D87 90 nop 00439D88 60 pushad 00439D89 E8 01000000 call NgaMy.00439D8F 8F 05 D5 FD 41 00 8B 0C 24 8F 05 4D FC 41 00 50 89 14 24 8F 05 BD FE 41 00 FF 35 BD FE 41 00 51 B9 DD FD 41 00 89 39 59 FF 35 DD FD 41 00 C7 05 A9 FE 41 00 60 55 40 00 FF 35 A9 FE 41 00 8B 3C 24 8F 05 95 FD 41 00 89 1D 29 FD 41 00
15、hr 0012ff1c,F9
0043A6FB FF35 29FD4100 push dword ptr ds:[41FD29] 0043A701 8BDF mov ebx,edi 0043A703 8BD3 mov edx,ebx 0043A705 5B pop ebx 0043A706 8F05 E9FE4100 pop dword ptr ds:[41FEE9] 0043A70C 8B3D E9FE4100 mov edi,dword ptr ds:[41FEE9] 0043A712 52 push edx 0043A713 891C24 mov dword ptr ss:[esp],ebx 0043A716 68 9DFE4100 push NgaMy.0041FE9D 0043A71B 5B pop ebx 0043A71C 8913 mov dword ptr ds:[ebx],edx 0043A71E 8B1C24 mov ebx,dword ptr ss:[esp] 0043A721 8F05 49FE4100 pop dword ptr ds:[41FE49] 0043A727 8B1424 mov edx,dword ptr ss:[esp] 0043A72A 8F05 69FD4100 pop dword ptr ds:[41FD69] 0043A730 FF15 9DFE4100 call dword ptr ds:[41FE9D] 0043A736 8965 E8 mov dword ptr ss:[ebp-18],esp 0043A739 8925 C5FD4100 mov dword ptr ds:[41FDC5],esp 0043A73F 891D 21FD4100 mov dword ptr ds:[41FD21],ebx 0043A745 FF35 21FD4100 push dword ptr ds:[41FD21] 0043A74B 60 pushad 0043A74C 74 03 je short NgaMy.0043A751 FF 35 29 FD 41 00 8B DF 8B D3 5B 8F 05 E9 FE 41 00 8B 3D E9 FE 41 00 52 89 1C 24 68 9D FE 41 00 5B 89 13 8B 1C 24 8F 05 49 FE 41 00 8B 14 24 8F 05 69 FD 41 00 FF 15 9D FE 41 00 89 65 E8 89 25 C5 FD 41 00 89 1D 21 FD 41 00 FF 35 21 FD 41 00
16、hr 0012fe8c,F9
0043B097 68 C5FD4100 push NgaMy.0041FDC5 0043B09C 5B pop ebx 0043B09D 8B33 mov esi,dword ptr ds:[ebx] 0043B09F 8B1C24 mov ebx,dword ptr ss:[esp] 0043B0A2 8F05 A9FC4100 pop dword ptr ds:[41FCA9] 0043B0A8 893E mov dword ptr ds:[esi],edi 0043B0AA 57 push edi 0043B0AB 8F05 F5FE4100 pop dword ptr ds:[41FEF5] 0043B0B1 FF35 F5FE4100 push dword ptr ds:[41FEF5] 0043B0B7 893424 mov dword ptr ss:[esp],esi 0043B0BA FF15 BCA04000 call dword ptr ds:[40A0BC] ; NgaMy.0041F23F 0043B0C0 8B4E 10 mov ecx,dword ptr ds:[esi+10] 0043B0C3 50 push eax 0043B0C4 B8 F9FB4100 mov eax,NgaMy.0041FBF9 0043B0C9 8910 mov dword ptr ds:[eax],edx 0043B0CB 58 pop eax 0043B0CC FF35 F9FB4100 push dword ptr ds:[41FBF9] 0043B0D2 56 push esi 0043B0D3 C70424 ACDE4000 mov dword ptr ss:[esp],NgaMy.0040DEAC 0043B0DA 8B1424 mov edx,dword ptr ss:[esp] 0043B0DD 8F05 ADFD4100 pop dword ptr ds:[41FDAD] 0043B0E3 890A mov dword ptr ds:[edx],ecx 0043B0E5 90 nop 0043B0E6 90 nop 0043B0E7 60 pushad 0043B0E8 E8 01000000 call NgaMy.0043B0EE 68 C5 FD 41 00 5B 8B 33 8B 1C 24 8F 05 A9 FC 41 00 89 3E 57 8F 05 F5 FE 41 00 FF 35 F5 FE 41 00 89 34 24 FF 15 BC A0 40 00 8B 4E 10 50 B8 F9 FB 41 00 89 10 58 FF 35 F9 FB 41 00 56 C7 04 24 AC DE 40 00 8B 14 24 8F 05 AD FD 41 00 89 0A
17、hr 0012fe8c,F9
0043B9DA 8F05 29FE4100 pop dword ptr ds:[41FE29] ; 7FFB0000 0043B9E0 FF35 29FE4100 push dword ptr ds:[41FE29] 0043B9E6 5A pop edx 0043B9E7 8B46 04 mov eax,dword ptr ds:[esi+4] 0043B9EA A3 B8DE4000 mov dword ptr ds:[40DEB8],eax 0043B9EF 8B56 08 mov edx,dword ptr ds:[esi+8] 0043B9F2 52 push edx 0043B9F3 8F05 3DFD4100 pop dword ptr ds:[41FD3D] 0043B9F9 FF35 3DFD4100 push dword ptr ds:[41FD3D] 0043B9FF 8F05 BCDE4000 pop dword ptr ds:[40DEBC] 0043BA05 8B76 0C mov esi,dword ptr ds:[esi+C] 0043BA08 81E6 FF7F0000 and esi,7FFF 0043BA0E 53 push ebx 0043BA0F BB 35FE4100 mov ebx,NgaMy.0041FE35 0043BA14 8933 mov dword ptr ds:[ebx],esi 0043BA16 5B pop ebx 0043BA17 FF35 35FE4100 push dword ptr ds:[41FE35] 0043BA1D 8F05 B0DE4000 pop dword ptr ds:[40DEB0] 0043BA23 90 nop 0043BA24 90 nop 0043BA25 60 pushad 0043BA26 E8 01000000 call NgaMy.0043BA2C 8F 05 29 FE 41 00 FF 35 29 FE 41 00 5A 8B 46 04 A3 B8 DE 40 00 8B 56 08 52 8F 05 3D FD 41 00 FF 35 3D FD 41 00 8F 05 BC DE 40 00 8B 76 0C 81 E6 FF 7F 00 00 53 BB 35 FE 41 00 89 33 5B FF 35 35 FE 41 00 8F 05 B0 DE 40 00
18、hr 0012fe90,F9
0043BE77 /EB 01 jmp short NgaMy.0043BE7A //F8 0043BE79 |E8 FF25BCBE call BEFFE47D 0043BE7E 43 inc ebx 0043BE7F 0060 E8 add byte ptr ds:[eax-18],ah 0043BE82 0000 add byte ptr ds:[eax],al 0043BE84 0000 add byte ptr ds:[eax],al 0043BE86 5E pop esi 0043BE87 83EE 06 sub esi,6 0043BE8A B9 66000000 mov ecx,66 0043BE8F 29CE sub esi,ecx 0043BE91 BA 8A261D6A mov edx,6A1D268A 0043BE96 C1E9 02 shr ecx,2 0043BE99 83E9 02 sub ecx,2 0043BE9C 83F9 00 cmp ecx,0 0043BE7A - FF25 BCBE4300 jmp dword ptr ds:[43BEBC] ; NgaMy.0040305C //跳到OEP
19、把所有的代码汇总一下:
89 15 F5 FD 41 00 FF 35 F5 FD 41 00 8F 05 2D FE 41 00 FF 35 2D FE 41 00 C7 04 24 60 00 00 00 56 89 0C 24 68 8D FD 41 00 59 89 19 8B 0C 24 8F 05 AD FE 41 00 FF 35 8D FD 41 00 C7 04 24 48 A2 40 00 89 05 B9 FD 41 00 FF 35 B9 FD 41 00 68 1D FD 41 00 58 89 30 8F 05 79 FC 41 00 8B 05 79 FC 41 00 FF 35 1D FD 41 00 56 89 1C 24 C7 04 24 38 3D 40 00 8B 34 24 8F 05 A5 FE 41 00 89 05 01 FF 41 00 FF 35 01 FF 41 00 89 1C 24 56 C7 04 24 45 FE 41 00 8F 05 31 FE 41 00 8B 1D 31 FE 41 00 89 33 8F 05 39 FC 41 00 FF 35 39 FC 41 00 5B 8F 05 09 FE 41 00 89 1D 21 FC 41 00 FF 35 21 FC 41 00 C7 05 19 FC 41 00 09 FE 41 00 8B 1D 19 FC 41 00 8B 33 8F 05 FD FB 41 00 8B 1D FD FB 41 00 FF 15 45 FE 41 00 89 0D B1 FD 41 00 FF 35 B1 FD 41 00 8F 05 B5 FC 41 00 FF 35 B5 FC 41 00 56 BE FD FC 41 00 89 3E 5E FF 35 FD FC 41 00 68 94 00 00 00 8F 05 E5 FC 41 00 FF 35 E5 FC 41 00 5F 89 3D 3D FE 41 00 FF 35 3D FE 41 00 8B 0C 24 8F 05 7D FE 41 00 8B 3C 24 8F 05 79 FD 41 00 89 35 25 FC 41 00 FF 35 25 FC 41 00 89 0C 24 8B 3C 24 8F 05 B9 FC 41 00 8F 05 19 FE 41 00 89 05 89 FD 41 00 FF 35 89 FD 41 00 57 BF 19 FE 41 00 8B C7 5F 8B 08 8F 05 95 FC 41 00 8B 05 95 FC 41 00 53 8F 05 5D FE 41 00 FF 35 5D FE 41 00 89 0C 24 89 3D 91 FE 41 00 FF 35 91 FE 41 00 8F 05 81 FC 41 00 89 1D 89 FE 41 00 FF 35 89 FE 41 00 68 81 FC 41 00 5B 8B 0B 8F 05 C9 FC 41 00 8B 1D C9 FC 41 00 57 89 04 24 89 0C 24 8B 04 24 8F 05 D5 FD 41 00 8B 0C 24 8F 05 4D FC 41 00 50 89 14 24 8F 05 BD FE 41 00 FF 35 BD FE 41 00 51 B9 DD FD 41 00 89 39 59 FF 35 DD FD 41 00 C7 05 A9 FE 41 00 60 55 40 00 FF 35 A9 FE 41 00 8B 3C 24 8F 05 95 FD 41 00 89 1D 29 FD 41 00 FF 35 29 FD 41 00 8B DF 8B D3 5B 8F 05 E9 FE 41 00 8B 3D E9 FE 41 00 52 89 1C 24 68 9D FE 41 00 5B 89 13 8B 1C 24 8F 05 49 FE 41 00 8B 14 24 8F 05 69 FD 41 00 FF 15 9D FE 41 00 89 65 E8 89 25 C5 FD 41 00 89 1D 21 FD 41 00 FF 35 21 FD 41 00 68 C5 FD 41 00 5B 8B 33 8B 1C 24 8F 05 A9 FC 41 00 89 3E 57 8F 05 F5 FE 41 00 FF 35 F5 FE 41 00 89 34 24 FF 15 BC A0 40 00 8B 4E 10 50 B8 F9 FB 41 00 89 10 58 FF 35 F9 FB 41 00 56 C7 04 24 AC DE 40 00 8B 14 24 8F 05 AD FD 41 00 89 0A 8F 05 29 FE 41 00 FF 35 29 FE 41 00 5A 8B 46 04 A3 B8 DE 40 00 8B 56 08 52 8F 05 3D FD 41 00 FF 35 3D FD 41 00 8F 05 BC DE 40 00 8B 76 0C 81 E6 FF 7F 00 00 53 BB 35 FE 41 00 89 33 5B FF 35 35 FE 41 00 8F 05 B0 DE 40 00
20、用工具申请一个新的区段
记下起始的地址:0043E000
21、OD打开创建完后的。找到0043E000,粘贴入代码,保存
记住,后面得加跳向假OEP的代码!!
JMP 0040305C
22、修正入口点
本文作者:drc01or
本文链接:https://www.cnblogs.com/drc01or/p/18328904
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步