首页 > 其他分享 >ximo基础脱壳教程的脱壳学习记录

ximo基础脱壳教程的脱壳学习记录

时间:2024-08-02 16:50:07浏览次数:8  
标签:ximo 脱壳 00 教程 ds 41 dword ptr mov

之前遇到壳直接脚本自动化处理了,现在初步学习一下手脱壳。(中间一直用的x32dbg,后来有些壳换od脱了)

参考教程

1、手脱UPX壳

查壳

image-20240726191243664

方法1:单步跟踪

就是一直单步走,如果是向下跳转就跳,如果是向上跳转就不跳,执行原本跳转的下一句。

比如这里向上跳转就不跳,直接在5790ab处按f4跳到这即可

image-20240726191501992

方法2:ESP定律法

在程序自解密或者自解压过程中,对于多数壳,它们会先将当前寄存器状态压栈,如使用pushad/pushfd。
而在解压结束后, 会将之前的寄存器值出栈,如使用popad/popfd,一般标志寄存器不是很重要,一般不做处理。
所以编写加壳软件必须遵守的是栈平衡原理。

因此在寄存器出栈时, 往往程序代码被恢复, 此时硬件断点触发(pop IP),这就是我们要下硬件断点的原因,然后在程序当前位置,只需要一些单步操作,就会到达正确的OEP位置。

也就是说,我们可以这么认为,如果载入程序后只有esp寄存器(eip除外)内容发生变化,那么这个程序多半可以用ESP定律。

单步运行,发现在此处只有esp变红。

image-20240726191606166

转到这个地址

image-20240726191629205

设置一个硬件断点

image-20240726191654705

按f9直接来到大跳处,单步走即为oep

image-20240726191737115

dd XXXXX
hr XXXXX

方法3:2次内存镜像法

在内存中找到程序资源处,在这下个断点,按f9

image-20240726191900706

然后在第一个模块upx0处下个断点,再按f9运行。

image-20240726191948900

接着单步走即可来到oep

方法4:一步直达法(适用于大部分UPX壳和ASpack壳)

原理:有进栈肯定就有出栈

在入栈处搜索出栈指令

image-20240726192351378

直接运行到这

image-20240726192401692

看到了之前的大跳。

脱壳过程(x32dbg自带插件scylla(od脱壳见第9条))

首先将oep修改为我们找到的真正的oep 0047738c,然后依次点击IAT Autosearch和Get Imports得到修复库内容。

image-20240726192657905

点击Dump导出文件,然后点击Fix Dump选择刚刚导出的文件进行修复

image-20240726192738081

发现脱壳成功

image-20240726192815992

2、手脱ASPACK壳

查壳:

image-20240726193034801

脱UPX壳的四种方法对此壳同样适用,下面还有两种其他的方法,其都是利用反编译器自动寻找oep,这里用od实例。

方法一:模拟跟踪

在内存空间中找到包含SFX的这一行

image-20240726193437166

在命令行输入tc eip<xxxxxx

image-20240726193536531

左上角显示跟踪二字,说明程序自动跟踪,等一会就会跳到oep处(方法可能很慢,视程序而定)

image-20240726193610275

方法二:SFX

在选项-调试设置中修改选项,选择第二项。

image-20240726193718104

重载程序,od自动跳到程序的oep。

3、手脱Nspack壳

image-20240726193950351

没什么好说的,esp秒了

4、手脱FSG壳

image-20240726194105786

这里用od脱壳的话需要修复IAT,不过我用的是scylla,脱壳过程中就把IAT修复了,因此这一步也没什么难度

5、手脱PECompact2.X壳

image-20240726194653671

这个壳可以用单步和esp法,还有几种比较特殊的方法

方法一:BP VirtualFree

直接下这个断点

image-20240726194902756

然后无视异常运行

image-20240726194933211

运行到这取消断点

image-20240726195019477

然后回到用户代码

image-20240726195041852

然后查找push 0x8000这个特征码

image-20240726195145522

接着单步跟就到oep了

同样这种命令,但是操作有些区别,先BP VirtualFree,按两次SHIFT+F9,中断后取消断点,Alt+F9返回,单步走。

方法二:下初始地址断点

我们看到程序刚开头的mov指令有0045de74,我们直接在这个地址下断点:BP 0045DE74

image-20240726195440147

运行到此,下面有个return,我们肯定不能让程序跑飞,于是在下一行下断点,即0045de97

image-20240726195610261

然后单步跟,可以到达oep

方法三:bp VirtualAlloc

过程类似方法一,先下断点,然后SHIFT+F9运行,取消断点,ALT+F9到用户界面,向下拉,看到JMP。运行到这

方法四:最后一次异常法

取消所有异常,点shift+f9,点了2次跑飞。出现程序界面,

image-20240726195918928

因此找2-1次即第一次即可。

image-20240726200003743

找SE句柄

image-20240726200024278

转到SE xxxx处,这里是0045DE74,然后找到oep。

6、手脱EZIP壳

没啥好说的,这壳很简单,之前的方法够用。

7、手脱TELock0.98b1壳

三种方法均适用

1、最后一次异常法

2、模拟跟踪

3、两次内存镜像

8、手脱EXE32PACK壳

这个也简单,过了。

9、脱WinUpack加的壳

先给程序加壳并查壳。

image-20240726190347759

拖到x32dbg运行。

这程序前边当过例子,我们单步走很自然发现一个大跳40A41E为oep,但这里显示跳转不会执行。

image-20240726190616278

可以按f8直到eax==0满足跳转的条件,这个过程是程序加载导入表。更方便的是用到加条件断点的方法,可以直接运行到此,使跳转可用。

image-20240726190740299

image-20240726190755517

进入oep重复上述脱壳过程,出现问题。

image-20240726190851015

重新找了很多资料尝试,依旧没解决,放到虚拟机试试。

这里虚拟机显示是已经脱壳了的

image-20240726190956902

在虚拟机用od重新脱一遍壳,然后用loadpe和rec脱壳,最后脱壳成功,可以运行。

先在loadpe找到进程,修正镜像大小,然后完整转存

90fb96d083dcdd9192dd4179a80cb113

rec修正oep,点击自动查找IAT和获取输入表,然后修复上一步dump出的文件

1b6e07fc26107c6bf33edb3fe5cf713f

脱壳成功

image-20240726191103008

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、附加数据的处理方法

查壳,示例程序是一个北斗壳

image-20240727151255758

可以看到有一个附加:binary,表明有附加数据。换一个查壳软件,可以看到有overlay,表明有附加数据。

image-20240727151647568

我们正常脱完壳的程序是没有附加数据的,因此我们要把它加上(如果有用的话)

image-20240727151728678

可以用overlay最终版这个软件,但是在电脑上报毒,于是考虑用十六进制编辑器手动附加数据,这里用010editor

在die中pe模块找到数据位置,也可以用loadpe等其他软件。文件偏移是400,大小为8800,总偏移为8c00

image-20240727152003287

打开010,跳转到8c00,可以发现上边的数据全为0,下边为附加数据

image-20240727152136963

然后复制这段数据,打开脱壳后的exe,把这段数据粘贴到末尾,另存为导出即可。

可以发现成功附加。

image-20240727152521869

12、自校验的去除方法

示例程序为北斗壳

image-20240727152640485

脱壳,运行脱壳后的程序

image-20240727154005195

提示文件被非法修改

查一下壳,发现脱壳之后程序仍然不正常

image-20240727154051210

说明可能存在自校验。

检查方法:开两个调试器,分别调试源程序和脱壳之后的程序,比较跳转部分。

两个调试器都在此处下断点:bp CreateFileA

然后发现在此处有分歧,脱壳后的程序满足跳转条件,而源程序不跳转。因此修改脱壳后的程序,使其不跳转。可以把jne给nop掉,可以修改成je,也可以修改cmp,总之将其逻辑修改成和源程序一致即可。

image-20240727154916202

然后导出即可,发现正常运行

image-20240727155417734

13、脱壳的简单应用——软件的汉化及DIY

为什么要脱壳?

不脱壳在破解过程中无法进行,比如我们用resource hacker修改exe文件时,如果程序有壳那么软件会报错。

d2f0c5bd60d70a16dac0335cd335f7cb

因此如果程序有壳,就要先脱壳,再对软件进行破解、汉化等操作。

工具:

resource hacker

peexplorer

getvbres ............VB类的汉化、DIY

xnresource

等等

vb程序修改例子

例如我们将这个vb程序进行修改

image-20240727162930932

image-20240727162953449

进行简单的diy

3ef4f7254b19753dc0cd81d2ed2e96d6

VC程序diy

使用resource hacker加载脱壳后的程序,依然提示有壳

1d4a8b9a6cf3b928c6d412393530df44

可能是没脱干净,使用软件修复

image-20240727171253055

之后可以正常载入

此程序原本对话框如下

image-20240727172203515

我们可以在dialog处对其进行修改

image-20240727172057971

修改之后

image-20240727172142537

c++程序diy

用resource hacker进行修改看不到c++特有的rc数据,因此需要使用peexplorer进行修改,这里不放图了。

14、手脱ASPACK变形壳

先把例子加上壳,od载入

这个变性壳esp定律不适用,f9运行一下程序直接跑飞,因此直接单步法可以直接到达oep,近call f7跟进,远call f8步过,大跨度跳转oep。

脱变形壳加壳工具使用最后一次异常法。

15、学会用脚本进行脱壳

这个已经无师自通了= =

defc5832f5809b0bd62a4c830e98a213

但不能尽信脱壳脚本,有点变形可能就脱壳失败,还需要手动检查。

16、脱ACProtect1.32(无Stolen Code)

image-20240727180255754

步骤:1。设置异常,隐藏OD

只保留内存访问异常。

image-20240728172045843

然后strong od取消勾选Skip Some Exception可以隐藏od

14cb56085dd2607924712747669cbfca

2。SE处下内存访问断点

来到这,堆栈窗口找se句柄

image-20240727181646090

右键在数据窗口中跟随,下内存访问断点

649c70215eb5218c07c64a48cdc33b93

3。SHIFT+F9,F2,再一次SHIFT+F9,下断,再一次SHIFT+F9

image-20240727182037520

image-20240727182104893

4,取消所有断点

6cfc9c940022b4c20ab5a041abc29226

不要忘记删除内存断点

8742d276387572d1cf9daaf9915052fb

5,内存,.text,00401000。F2,SHIFT+F9

3c0b41622c330a7b43bf94e6fb698b7b

6,直达OEP!!

dfd0fd8297ea3af8fbb751da0d20930c

7。修复,脱壳成功

17、脱ACProtect(存在Stolen Code)

查壳

image-20240728171947440

按照之前的步骤脱壳,运行到此

image-20240728172331599

然后在内存窗口中设置断点,运行到oep。

image-20240728172541883

这里存在stolen code,正常的oep应该有push ebp,因此我们需要修复代码。

重新来一遍运行到return

在调试-设置条件中设置命令是一个 push ebp

image-20240728173048874

然后跟踪步入

image-20240728173134088

然后od会自动跟踪,等一会就会跟踪到代码的位置。

21461b9b9e100812c19a3071f1d491b2

然后复制这三行代码,使用二进制复制,到达oep处,在上边二进制粘贴这段代码,并且在此处设置eip

image-20240728174021085

然后脱壳即可。

脱壳时遇到了问题,1.7版本的importrec在等级三跟踪下无法初始化,换1.6版本英文原版可以。

最终脱壳成功。

18、ACProtect之寻找丢失的Stolen Code

image-20240728191514364

关于Stolen Code的简单解释

壳为了在自己被消灭时从程序中带走了一些本不属于自己的东西
常见的就是在偷取程序入口处若干字节,使程序在脱壳后不能正常运行,因此脱壳后还要还原这些被偷掉的字节。这些就是stolen code。

1。设置异常(忽略除INT3中断的所有异常),隐藏OD

先设置异常:

image-20240728191808140

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确实被偷取了代码。

image-20240728192418667

6。下d 12ffc0,下硬件断点。SHIFT+F9。(只针对与acprotect壳)

7。记下Stolen Code 。

image-20240728193208459

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。写入真实的代码!!

image-20240728193641497

10。OD插件脱壳,注意,修正OEP地址!!

image-20240728194300686

11。IR修复,用等级3。不能修复的CUT掉。抓取修复。程序还是报错!

image-20240728194327906

这是由于高版本acprotect壳的自保护功能。

12。用od打开脱壳后的程序做下处理。来到壳的入口。也就是第一步记下的地址

CTRL+G,004AC000

13,写入真的OEP代码。

image-20240728195049880

写入原本的oep的三行代码以绕过壳的自检测,并且加个无条件跳转跳到真正的oep处。

14。Lord PE修正入口点

修正入口点和源程序一致

image-20240728195629186

15。保存,脱壳成功!

19、脱ACProtect V2.0.X

脱壳qq个性签名查看器(VB程序)

image-20240728200130335

套路和之前一样,不放图了。

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

image-20240728201347691

这里push的是程序的地址,call的是最后一个jmp的地址

image-20240728201411196

8。脱壳,修复

9。OK~!!脱壳完成

脱壳delphi程序

在调试时发现无论设置何种异常程序均一下跑飞,因此要选择其他方法。

1.下断:bp GetCurrentProcessId,F9

来到这

image-20240728201939836

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

image-20240728202818661

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

image-20240728202947813

6。脱壳,修复。用等级3!或者手动找MessageBoxA

7。抓取,脱壳成功!!

20、另类方法解ACProtect

由于一直中断不下来,先咕了。

21、ACProtect之补区段

1、忽略所有异常

2、打开内存镜像,在.rdata处F2,SHIFT+F9

没有.rdata用.idata

image-20240728211322472

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

image-20240728211420046

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、修正入口点

标签:ximo,脱壳,00,教程,ds,41,dword,ptr,mov
From: https://www.cnblogs.com/drc01or/p/18328904

相关文章

  • Python教程(十):面向对象编程(OOP)
    目录专栏列表前言一、面向对象编程概述1.1类和对象1.2继承1.3多态1.4封装二、Python中的类和对象2.1定义类2.2`__init__`函数解释2.3创建对象三、继承3.1基本继承3.2创建子类对象四、多态五、封装六.访问限制七、综合实例结语专栏列表Python教程(一):环......
  • Kotlin 字符串教程:深入理解与使用技巧
    Kotlin字符串字符串用于存储文本。字符串包含由双引号包围的字符集合:示例vargreeting="Hello"与Java不同,您不必指定变量是字符串。Kotlin足够智能,可以通过双引号理解上例中的greeting变量是字符串。然而,与其他数据类型一样,如果您坚持,可以指定类型:示例vargreeti......
  • kettle从入门到精通 第八十二课 ETL之kettle kettle中的【阻塞数据直到步骤都完成】使
     1、在使用步骤【阻塞数据直到步骤都完成】(英文为Blockthisstepuntilstepsfinish)之前,我们先来了解下什么是 CopyNr? CopyNr是指 “副本编号” 或 “拷贝编号”,也就是下图中的复制的记录行数,图中的两个步骤复制的记录行数都是0,表示只有一个副本。 2、写日志步骤右......
  • SPONGE常用教程:蛋白+配体模拟3
    前序课程1前序课程2目录应用场景简述;-[Done]DSDP:蛋白-配体对接;-[Done]XPONGE:蛋白-配体建模,加溶剂;-[Done]SPONGE:能量极小化-NVT-NPT-正式模拟;-[Done]XPONGE:数据简单后处理。5.XPONGE:数据简单后处理经过1ns的SPONGE分子动力学模拟,得到了轨迹文件"mdcrd.dat......
  • 功能强大的电路设计与仿真软件Multisim 14.3安装教程
    一款功能强大的电路设计与仿真软件Multisim是一款强大的电子电路仿真软件,广泛应用于电子工程和教育领域。本教程全面细致地解析了原理图设计、电路仿真以及虚拟仪器测试等核心功能,通过友好易学的界面设计,为用户打造了一款高效便捷的电路设计和分析工具,助您轻松掌握电路设计的精髓......
  • wps 最新 2019 专业版 下载安装教程,解锁全部功能,免费领取
    文章目录前言软件介绍软件下载安装步骤激活步骤小福利(安卓APP)软件介绍软件下载安装步骤前言本篇文章主要针对WPS的安装下载进行详细讲解,软件已激活,可放心使用;并且可以进行账号登录,进行云文档存储、编辑、分享,所有vip功能均可使用;没有限制;有任何问题可以在评论区讨论......
  • NVM下载、安装和配置教程-2024年6月6日
    NVM下载、安装和配置教程-2024年6月6日一、下载二、安装三、配置环境三、配置镜像源四、测试安装与使用五、nodejs配置与使用一、下载1.githubhttps://github.com/coreybutler/nvm-windows/releases这里是win系统的2.找到你想下载的版本,我这里选择的v1.1.11nvm-noinstall.zip:绿......
  • 计算机视觉库Kornia基础教程
    Kornia是一个用于计算机视觉任务的Python库,它提供了丰富的图像处理和计算机视觉操作接口。本教程将介绍Kornia的基本安装、使用方法以及一些实用的功能示例。一、引言Kornia是一个面向研究人员和开发者的计算机视觉库,它建立在PyTorch之上,旨在简化图像处理和计算机视觉任......
  • Python连接MinIO进阶教程:文件类型指定、上传与获取预览链接
    文章目录概要1.指定文件内容类型2.获取文件的预览链接(PresignedURL)使用fput_object上传文件4.完整示例与总结概要在上一篇文章中,我们介绍了如何使用Python连接MinIO服务器,并进行了基本的文件上传和下载操作。这次,我们将深入探讨一些进阶功能,包括在上传文件时指......
  • AI表情神同步!LivePortrait安装配置,一键包,使用教程
    快手在AI视频这领域还真有点东西,视频生成工具“可灵”让大家玩得不亦乐乎。现在又开源了一款超好玩的表情同步(表情控制)项目。 一看这图片,就知道是小视频平台出的,充满了娱乐性。发布没几天就已经有8000+Star。项目简介 LivePortrait是一款由快手团......