数码资讯
用OllydbgDLLrlpackv1.17壳去除手
评论:a.oep Usually DLL find OEP compression shell shell is relatively simple 当DLL被卸载,它会再次从EP,和几次去OEP 0094bea0 807c24 0801 CMP BYTE PTR SS:{ 8 } ESP,1 进入
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
评论:a.oep
Usually DLL find OEP compression shell shell is relatively simple
当DLL被卸载,它会再次从EP,和几次去OEP
0094bea0 807c24 0801 CMP BYTE PTR SS:{ 8 } ESP,1
进入OllyDbg /悬浮在EP后
0094bea5 0f85 7e010000锦州0094c029
在DLL卸载时
one.oep
通常DLL找到OEP压缩壳比较简单
当DLL被卸载,它会再次从EP,和几次去OEP
0094bea0 807c24 0801 CMP BYTE PTR SS:{ 8 } ESP,1
进入OllyDbg /悬浮在EP后
0094bea5 0f85 7e010000锦州0094c029
这里将跳/卸载DLL,捷径就是OEP。
0094c029 E9 be3afaff JMP 008efaec
这里是OEP /跳
_____________________________________________
两。输入表
rlpack v1.1x全版EXE文件加密壳一些输入表,但很少用DLL加密输入表
BP GetProcAddress
移F9,断开断点中断后,ALT F9返回
0094bf57 56推ESI
0094bf58 ff95 e3090000呼叫附近的DWORD PTR SS:{ EBP 9e3 };kernel32.loadlibrarya
0094bf5e 8985 4e0a0000 MOV EBP A4e DWORD PTR SS:{ },eax
0094bf64 85c0测试eax,eax
0094bf66 0f84 c2000000乙脑0094c02e
0094bf6c 8bc6 mov eax,ESI
0094bf6e EB 5f JMP短0094bfcf
0094bf70 8b85 520a0000 mov eax,DWORD PTR SS:{ EBP A52 }
0094bf76 8b00 mov eax,eax DWORD PTR DS:{ }
0094bf78 A9 000000 80测试eax,80000000
7414我0094bf7d短0094bf93
3500000080 0094bf7f XOR EAX,80000000
0094bf84 50压入
0094bf85 8b85 520a0000 mov eax,DWORD PTR SS:{ EBP A52 }
0094bf8b C700 20202000 MOV EAX DWORD PTR DS:{ },202020;Unicode赫塞哥维纳
0094bf91 EB 06 JMP短0094bf99
0094bf93 ffb5 520a0000推DWORD PTR SS:{ EBP A52 }
0094bf99 ffb5 4e0a0000推DWORD PTR SS:{ EBP A4e }
0094bf9f ff95 e7090000呼叫附近的DWORD PTR SS:{ EBP 9e7 };kernel32.getprocaddress
0094bfa5 85c0测试eax,eax
在这里返回
81000000 0094bfa7 0f84乙脑0094c02e
8907 0094bfad MOV EDI DWORD PTR DS:{ },eax;ntdll.rtldeletecriticalsection
填充系统功能。
/ / EDI = 008f3154注意到这个地址
0094bfaf 83c7 04加EDI,4
0094bfb2 8b85 520a0000 mov eax,DWORD PTR SS:{ EBP A52 }
0094bfb8 EB 01 JMP短0094bfbb
0094bfba EAX 40公司
803800 0094bfbb CMP BYTE PTR DS:{中},0
0094bfbe 75发短0094bfba JNZ
0094bfc0 EAX 40公司
0094bfc1 8985 520a0000 MOV DWORD PTR SS:{ EBP A52 },eax
0094bfc7 66:8178 020080 CMP字PTR DS:{ 2 } EAX,8000
0094bfcd 74 A1短0094bf70乙脑
803800 0094bfcf CMP BYTE PTR DS:{中},0
0094bfd2 75 9C锦州短0094bf70
0094bfd4 EB 01 JMP短0094bfd7
0094bfd6 46公司ESI
0094bfd7 803e 00 CMP BYTE PTR DS:{ - },0
0094bfda 75发短0094bfd6 JNZ
0094bfdc 46公司ESI
0094bfdd EAX 40公司
0094bfde 8b38 MOV EDI,DWORD PTR DS:{中}
0094bfe0 E8 4b000000叫0094c030
0094bfe5 83c0 04添加eax,4
0094bfe8 8985 520a0000 MOV DWORD PTR SS:{ EBP A52 },eax
0094bfee 803e 01 CMP BYTE PTR DS:{ - },1
0094bff1 0f85 60ffffff锦州0094bf57
循环输入表
现在手动确定RVA和输入表的大小
在数据窗口Ctrl G左下角:008f3154,点右键->长>地址
008f3150 00000000
008f3154 7c93188a ntdll.rtldeletecriticalsection
008f3158 7c9210ed ntdll.rtlleavecriticalsection
hellip;hellip;
008f37e0 7d610ec0 shell32.shellexecutea
008f37e4 00000000
008f37e8 76337cd8
008f37ec 7632311e
008f37f0 00000000
输入表开始RVA = 008f3154-00870000 = 00083154
输入表的大小= 008f37f0-008f3154 = 00000 69c
三。重定位表
事实上,编写本教程的价值在于这一部分。
经过跟踪,发现rlpack不加密搬迁表,这可以减少我们的麻烦的壳
0094bff7 6800400000推4000
0094bffc 6854180000推1854
0094c001 ffb5 560a0000推DWORD PTR SS:{ } EBP A56
0094c007 ff95 ef090000呼叫附近的DWORD PTR SS:{ EBP 9ef };kernel32.virtualfree
0094c00d 6800400000推4000
0094c012 68 00200c00推0c2000
0094c017 ffb5 3a0a0000推DWORD PTR SS:{ EBP A3A }
0094c01d ff95 ef090000呼叫附近的DWORD PTR SS:{ EBP 9ef };kernel32.virtualfree
清理战场
0094c023 E8 55000000电话0094c07d
{ } { } /代码的代码0094c07d 60 pushad / /搬迁过程
0094c07e 8bb5 460a0000 mov esi,DWORD PTR SS:{ } EBP A46
/ / { } = 00087000重定位表EBP A46 RVA。
0094c084 0bf6或ESI,ESI
7467我0094c086短0094c0ef
0094c088 8bbd 3e0a0000 MOV EDI,DWORD PTR SS:{ EBP A3E }
/ / { } = 00400000 EBP A3E文件地址
48 0094c08e 8b4424 mov eax,DWORD PTR SS:{ 48 } ESP
ESP 48 } = 00870000图像基
0094c092 8985 420a0000 MOV EBP A42 DWORD PTR SS:{ },eax
0094c098 3bc7 CMP eax,EDI
比较是相同的
7453我0094c09a短0094c0ef
不要跳转到不同的重新定位过程。
注意:此时没有重新定位程序,现在可以转储,所以在脱壳后不需要将转储文件修改到基上。
0094c09c 03f0添加ESI,eax
/ / ESI = 00087000 00870000 = 008f7000重定位表VA
0094c09e EB 4a JMP短0094c0ea
0094c0a0 8b16 mov EDX,DWORD PTR DS:{ - }
04 0094c0a2 8b46 mov eax,DWORD PTR DS:{ 4 } ESI
0094c0a5 8985 4a0a0000 MOV EBP A4A DWORD PTR SS:{ },eax
0094c0ab 01b5 4a0a0000添加DWORD PTR SS:{ EBP A4A },ESI
0094c0b1 83c6 08加喷雾,8
0094c0b4 EB 2c JMP短0094c0e2
0094c0b6 0fb706 movzx eax,字PTR DS:{ - }
0094c0b9 8bd8 mov ebx,eax
0094c0bb c1eb 0c SHR ebx,0c
0094c0be 8bcb mov ecx,EBX
00100000 0094c0c0 69db IMul ebx,ebx,1000
0094c0c6 2bc3子EAX,EBX
0094c0c8 03c2放入EAX,EDX
0094c0ca 0385 420a0000添加eax,DWORD PTR SS:{ } EBP A42
0094c0d0 83f9 03 CMP ECX,3
0094c0d3 75 0a锦州短0094c0df
0094c0d5 2938个DWORD PTR DS:{中},EDI
0094c0d7 8b8d 420a0000 mov ecx,DWORD PTR SS:{ } EBP A42
0094c0dd 0108添加DWORD PTR DS:{中},ECX
0094c0df 83c6 02加喷雾,2
0094c0e2 3bb5 4a0a0000 CMP ESI,DWORD PTR SS:{ EBP A4A }
0094c0e8 72 CC JB短0094c0b6
0094c0ea 833e 00 CMP DWORD PTR DS:{ - },0
0094c0ed 75 B1锦州短0094c0a0
重新定位过程
61 0094c0ef POPAD
ESI = 009000f8 / /处理后
/ /重定位表大小= = 000090f8 009000f8-008f7000。
0094c0f0 C3基因
_____________________________________________
四。完整的炮击
61 0094c028 POPAD
0094c029 E9 be3afaff JMP 008efaec
飞到光的顶部/。
61 0094c02e POPAD
0094c02f C3基因
55 008efaec push ebp
/ / OEP RVA = = 0007faec 008efaec-00870000
008efaed 8bec MOV EBP,ESP
008efaef 83c4 C4 add esp,3C
008efaf2 B8 04f98e00 mov eax,008ef904
008efaf7 E8 cc6df8ff叫008768c8
008efafc 33c0 xor eax,eax
008efafe A3 442c8f00 MOV DWORD PTR DS:{ 8f2c44 },eax
008efb03 E8 dc4bf8ff叫008746e4
运行importrec,因为DLL已经搬迁后装,所以去除使用disk PE头;选项
选择OllyDbg的loaddll.exe过程,并选择选择ibox.dll DLL
填写OEP RVA = 0007faec,输入表RVA = 00083154,输入表的大小= 00000 69c,进口
可以添加节修复,也可以将输入表放在程序的空白处。
修改dumped_。DLL的重定位表的RVA = 00087000,重定位表大小= 000090f8 LordPE
在附录中,ibox.unpacked.dll只是一个简单的优化。如果你想优化完美点,那会花很多时间。
完成炮击
Usually DLL find OEP compression shell shell is relatively simple
当DLL被卸载,它会再次从EP,和几次去OEP
0094bea0 807c24 0801 CMP BYTE PTR SS:{ 8 } ESP,1
进入OllyDbg /悬浮在EP后
0094bea5 0f85 7e010000锦州0094c029
在DLL卸载时
one.oep
通常DLL找到OEP压缩壳比较简单
当DLL被卸载,它会再次从EP,和几次去OEP
0094bea0 807c24 0801 CMP BYTE PTR SS:{ 8 } ESP,1
进入OllyDbg /悬浮在EP后
0094bea5 0f85 7e010000锦州0094c029
这里将跳/卸载DLL,捷径就是OEP。
0094c029 E9 be3afaff JMP 008efaec
这里是OEP /跳
_____________________________________________
两。输入表
rlpack v1.1x全版EXE文件加密壳一些输入表,但很少用DLL加密输入表
BP GetProcAddress
移F9,断开断点中断后,ALT F9返回
0094bf57 56推ESI
0094bf58 ff95 e3090000呼叫附近的DWORD PTR SS:{ EBP 9e3 };kernel32.loadlibrarya
0094bf5e 8985 4e0a0000 MOV EBP A4e DWORD PTR SS:{ },eax
0094bf64 85c0测试eax,eax
0094bf66 0f84 c2000000乙脑0094c02e
0094bf6c 8bc6 mov eax,ESI
0094bf6e EB 5f JMP短0094bfcf
0094bf70 8b85 520a0000 mov eax,DWORD PTR SS:{ EBP A52 }
0094bf76 8b00 mov eax,eax DWORD PTR DS:{ }
0094bf78 A9 000000 80测试eax,80000000
7414我0094bf7d短0094bf93
3500000080 0094bf7f XOR EAX,80000000
0094bf84 50压入
0094bf85 8b85 520a0000 mov eax,DWORD PTR SS:{ EBP A52 }
0094bf8b C700 20202000 MOV EAX DWORD PTR DS:{ },202020;Unicode赫塞哥维纳
0094bf91 EB 06 JMP短0094bf99
0094bf93 ffb5 520a0000推DWORD PTR SS:{ EBP A52 }
0094bf99 ffb5 4e0a0000推DWORD PTR SS:{ EBP A4e }
0094bf9f ff95 e7090000呼叫附近的DWORD PTR SS:{ EBP 9e7 };kernel32.getprocaddress
0094bfa5 85c0测试eax,eax
在这里返回
81000000 0094bfa7 0f84乙脑0094c02e
8907 0094bfad MOV EDI DWORD PTR DS:{ },eax;ntdll.rtldeletecriticalsection
填充系统功能。
/ / EDI = 008f3154注意到这个地址
0094bfaf 83c7 04加EDI,4
0094bfb2 8b85 520a0000 mov eax,DWORD PTR SS:{ EBP A52 }
0094bfb8 EB 01 JMP短0094bfbb
0094bfba EAX 40公司
803800 0094bfbb CMP BYTE PTR DS:{中},0
0094bfbe 75发短0094bfba JNZ
0094bfc0 EAX 40公司
0094bfc1 8985 520a0000 MOV DWORD PTR SS:{ EBP A52 },eax
0094bfc7 66:8178 020080 CMP字PTR DS:{ 2 } EAX,8000
0094bfcd 74 A1短0094bf70乙脑
803800 0094bfcf CMP BYTE PTR DS:{中},0
0094bfd2 75 9C锦州短0094bf70
0094bfd4 EB 01 JMP短0094bfd7
0094bfd6 46公司ESI
0094bfd7 803e 00 CMP BYTE PTR DS:{ - },0
0094bfda 75发短0094bfd6 JNZ
0094bfdc 46公司ESI
0094bfdd EAX 40公司
0094bfde 8b38 MOV EDI,DWORD PTR DS:{中}
0094bfe0 E8 4b000000叫0094c030
0094bfe5 83c0 04添加eax,4
0094bfe8 8985 520a0000 MOV DWORD PTR SS:{ EBP A52 },eax
0094bfee 803e 01 CMP BYTE PTR DS:{ - },1
0094bff1 0f85 60ffffff锦州0094bf57
循环输入表
现在手动确定RVA和输入表的大小
在数据窗口Ctrl G左下角:008f3154,点右键->长>地址
008f3150 00000000
008f3154 7c93188a ntdll.rtldeletecriticalsection
008f3158 7c9210ed ntdll.rtlleavecriticalsection
hellip;hellip;
008f37e0 7d610ec0 shell32.shellexecutea
008f37e4 00000000
008f37e8 76337cd8
008f37ec 7632311e
008f37f0 00000000
输入表开始RVA = 008f3154-00870000 = 00083154
输入表的大小= 008f37f0-008f3154 = 00000 69c
三。重定位表
事实上,编写本教程的价值在于这一部分。
经过跟踪,发现rlpack不加密搬迁表,这可以减少我们的麻烦的壳
0094bff7 6800400000推4000
0094bffc 6854180000推1854
0094c001 ffb5 560a0000推DWORD PTR SS:{ } EBP A56
0094c007 ff95 ef090000呼叫附近的DWORD PTR SS:{ EBP 9ef };kernel32.virtualfree
0094c00d 6800400000推4000
0094c012 68 00200c00推0c2000
0094c017 ffb5 3a0a0000推DWORD PTR SS:{ EBP A3A }
0094c01d ff95 ef090000呼叫附近的DWORD PTR SS:{ EBP 9ef };kernel32.virtualfree
清理战场
0094c023 E8 55000000电话0094c07d
{ } { } /代码的代码0094c07d 60 pushad / /搬迁过程
0094c07e 8bb5 460a0000 mov esi,DWORD PTR SS:{ } EBP A46
/ / { } = 00087000重定位表EBP A46 RVA。
0094c084 0bf6或ESI,ESI
7467我0094c086短0094c0ef
0094c088 8bbd 3e0a0000 MOV EDI,DWORD PTR SS:{ EBP A3E }
/ / { } = 00400000 EBP A3E文件地址
48 0094c08e 8b4424 mov eax,DWORD PTR SS:{ 48 } ESP
ESP 48 } = 00870000图像基
0094c092 8985 420a0000 MOV EBP A42 DWORD PTR SS:{ },eax
0094c098 3bc7 CMP eax,EDI
比较是相同的
7453我0094c09a短0094c0ef
不要跳转到不同的重新定位过程。
注意:此时没有重新定位程序,现在可以转储,所以在脱壳后不需要将转储文件修改到基上。
0094c09c 03f0添加ESI,eax
/ / ESI = 00087000 00870000 = 008f7000重定位表VA
0094c09e EB 4a JMP短0094c0ea
0094c0a0 8b16 mov EDX,DWORD PTR DS:{ - }
04 0094c0a2 8b46 mov eax,DWORD PTR DS:{ 4 } ESI
0094c0a5 8985 4a0a0000 MOV EBP A4A DWORD PTR SS:{ },eax
0094c0ab 01b5 4a0a0000添加DWORD PTR SS:{ EBP A4A },ESI
0094c0b1 83c6 08加喷雾,8
0094c0b4 EB 2c JMP短0094c0e2
0094c0b6 0fb706 movzx eax,字PTR DS:{ - }
0094c0b9 8bd8 mov ebx,eax
0094c0bb c1eb 0c SHR ebx,0c
0094c0be 8bcb mov ecx,EBX
00100000 0094c0c0 69db IMul ebx,ebx,1000
0094c0c6 2bc3子EAX,EBX
0094c0c8 03c2放入EAX,EDX
0094c0ca 0385 420a0000添加eax,DWORD PTR SS:{ } EBP A42
0094c0d0 83f9 03 CMP ECX,3
0094c0d3 75 0a锦州短0094c0df
0094c0d5 2938个DWORD PTR DS:{中},EDI
0094c0d7 8b8d 420a0000 mov ecx,DWORD PTR SS:{ } EBP A42
0094c0dd 0108添加DWORD PTR DS:{中},ECX
0094c0df 83c6 02加喷雾,2
0094c0e2 3bb5 4a0a0000 CMP ESI,DWORD PTR SS:{ EBP A4A }
0094c0e8 72 CC JB短0094c0b6
0094c0ea 833e 00 CMP DWORD PTR DS:{ - },0
0094c0ed 75 B1锦州短0094c0a0
重新定位过程
61 0094c0ef POPAD
ESI = 009000f8 / /处理后
/ /重定位表大小= = 000090f8 009000f8-008f7000。
0094c0f0 C3基因
_____________________________________________
四。完整的炮击
61 0094c028 POPAD
0094c029 E9 be3afaff JMP 008efaec
飞到光的顶部/。
61 0094c02e POPAD
0094c02f C3基因
55 008efaec push ebp
/ / OEP RVA = = 0007faec 008efaec-00870000
008efaed 8bec MOV EBP,ESP
008efaef 83c4 C4 add esp,3C
008efaf2 B8 04f98e00 mov eax,008ef904
008efaf7 E8 cc6df8ff叫008768c8
008efafc 33c0 xor eax,eax
008efafe A3 442c8f00 MOV DWORD PTR DS:{ 8f2c44 },eax
008efb03 E8 dc4bf8ff叫008746e4
运行importrec,因为DLL已经搬迁后装,所以去除使用disk PE头;选项
选择OllyDbg的loaddll.exe过程,并选择选择ibox.dll DLL
填写OEP RVA = 0007faec,输入表RVA = 00083154,输入表的大小= 00000 69c,进口
可以添加节修复,也可以将输入表放在程序的空白处。
修改dumped_。DLL的重定位表的RVA = 00087000,重定位表大小= 000090f8 LordPE
在附录中,ibox.unpacked.dll只是一个简单的优化。如果你想优化完美点,那会花很多时间。
完成炮击
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。