朱朱你堕落了 发表于 2022-12-25 21:20

ACProtect脱壳问题

非常老的壳了,最简单的脱壳也不会,这个贴子:
https://www.52pojie.cn/thread-1257487-1-1.html

为了方便我直接把贴子中的附件,上传到网盘: https://cowtransfer.com/s/21d99863f50345
里面的ACP_Feedback是无壳delphi的,做参考用的,ACP_Feedback1.32是加了ACProtect的,用来试练的。

第一个自然是到OEP了,试了几次也不知道用什么方法能跳到OEP,哈哈。

第二个,看贴子中使用的魔术跳,跳过IAT加密,但是不会找。

它的IAT应该就这些吧,

004050A00040A010ACP_Feed.0040A010
004050A40040A01DACP_Feed.0040A01D
004050A80040A02AACP_Feed.0040A02A
004050AC0040A037ACP_Feed.0040A037
004050B00040A044ACP_Feed.0040A044
004050B40040A051ACP_Feed.0040A051
004050B80040A05EACP_Feed.0040A05E
004050BC0040A06BACP_Feed.0040A06B
004050C00040A078ACP_Feed.0040A078
004050C40040A085ACP_Feed.0040A085
004050C80040A092ACP_Feed.0040A092
004050CC0040A09FACP_Feed.0040A09F
004050D00040A0ACACP_Feed.0040A0AC
004050D40040A0B9ACP_Feed.0040A0B9
004050D80040A0C6ACP_Feed.0040A0C6
004050DC00000000
004050E00040A0D3ACP_Feed.0040A0D3
004050E40040A0E0ACP_Feed.0040A0E0
004050E800000000
004050EC77DA7AABADVAPI32.RegQueryValueExA
004050F077DA7842ADVAPI32.RegOpenKeyExA
004050F477DA6C17ADVAPI32.RegCloseKey
004050F800000000
004050FC0040A0EDACP_Feed.0040A0ED
004051000040A0FAACP_Feed.0040A0FA
004051040040A107ACP_Feed.0040A107
004051080040A114ACP_Feed.0040A114
0040510C00000000
004051100040A121ACP_Feed.0040A121
004051140040A12EACP_Feed.0040A12E
004051180040A13BACP_Feed.0040A13B
0040511C0040A148ACP_Feed.0040A148
0040512000000000
004051240040A155ACP_Feed.0040A155
004051280040A162ACP_Feed.0040A162
0040512C0040A16FACP_Feed.0040A16F
004051300040A17CACP_Feed.0040A17C
004051340040A189ACP_Feed.0040A189
004051380040A196ACP_Feed.0040A196
0040513C0040A1A3ACP_Feed.0040A1A3
004051400040A1B0ACP_Feed.0040A1B0
0040514400000000
004051487D611150shell32.ShellExecuteA
0040514C00000000

从0x004050A0到0x0040514C吧,那对第一个0x004050A0下DWORD类型的硬件写入断点,断在如下图位置。




这里应该没错吧。但是在上面找,并没有找到跳过IAT重定向写入的跳转。
如离它最近的上面的ret,我会想着在ret下面找跳过IAT加密时的代码,

0041E794    C3            retn
0041E795    E9 04000000   jmp ACP_Feed.0041E79E 从这里看,看得一头雾水。
0041E79A    66:B9 32CF      mov cx,0xCF32

但是ret下面这并不是个函数啊,和我们一般的无壳程序不一样啊,无壳的一般retn下面都是一个完整的汇编段,如
push ebp
mov esp, ebp
........
ret

为什么壳里代码都是这样的,花指令还是乱序啥的吗?

具体应该怎么找?是不是方法不对呢? 最有效锁定的IAT加密时位置的方法是什么。
方便的话,麻烦给做个视频下,一个是如何到OEP,一个是如何跳过IAT加密。

七宗罪丶 发表于 2022-12-25 21:20

本帖最后由 七宗罪丶 于 2022-12-26 19:42 编辑

0041E973   90            nop
0041E974   90            nop

0041E9D201 改 00

https://imglf5.lf127.net/img/8dfd2f493b056a7f/V2xWZWRoOU5iQnUrdnpkZFZYd3ZlUExObGluYi9oOE9xOFZRQkIrZ1ZSdz0.gif

oOvVvAvVvOo 发表于 2022-12-25 22:39

有没有萌新入门的脱壳教学,有点看不懂啊,我萌新

oOvVvAvVvOo 发表于 2022-12-25 22:42

oOvVvAvVvOo 发表于 2022-12-25 22:39
有没有萌新入门的脱壳教学,有点看不懂啊,我萌新

不好意思我眼瞎,看到了简单脱壳了

a8511816 发表于 2022-12-26 06:42

学习了,厉害

酒醒黄昏 发表于 2022-12-26 09:06

有没有萌新入门的脱壳教学,有点看不懂啊,我萌新

朱朱你堕落了 发表于 2022-12-26 11:19

七宗罪丶 发表于 2022-12-25 21:20
0041E973   90            nop
0041E974   90            nop



大佬威武,为什么此处0041E9D2    0100            add dword ptr ds:,eax

改成了00就影响上面的跳转了呢?我测试如果不改的话,上面的jz就不跳,改了就跳,
为什么要改这里,而且是jz下面的代码修改反而影响了上面的jz跳转呢?麻烦讲一下原理。

七宗罪丶 发表于 2022-12-26 19:31

本帖最后由 七宗罪丶 于 2022-12-26 19:45 编辑

41E9C0这里cmp的值 就是 41E9D2这里的
你跟踪到cmp这里的时候 可以右键查看




上面的图片不显示 我重新传一个

https://imglf5.lf127.net/img/8dfd2f493b056a7f/V2xWZWRoOU5iQnUrdnpkZFZYd3ZlUExObGluYi9oOE9xOFZRQkIrZ1ZSdz0.gif

朱朱你堕落了 发表于 2022-12-27 14:54

七宗罪丶 发表于 2022-12-26 19:31
41E9C0这里cmp的值 就是 41E9D2这里的
你跟踪到cmp这里的时候 可以右键查看



大佬用的这个gif录制工具叫什么?看着挺好玩。

七宗罪丶 发表于 2022-12-28 00:43

朱朱你堕落了 发表于 2022-12-27 14:54
大佬用的这个gif录制工具叫什么?看着挺好玩。
不知道叫啥 挺老的小工具了
页: [1]
查看完整版本: ACProtect脱壳问题