各位大哥,大姐。小菜我初学脱壳。刚刚下决心要脱一个软件的壳的时候就遇到了Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks壳!自己在网上看了很多关于这个壳的资料,试了试手动脱壳。但…………!哎,说来悲惨,小弟一直都很努力的在学习编程,解密方面的东西,由于一天要上班,身过又一个可以教我的人都没有,就……!一直都在看雪里潜水!潜了好久好久了,今天路出来希望大家帮我一下。
基本上问题如下:
我是一个脱壳的初学者,刚刚脱第一个壳我就遇到了很大的困难。希望你能帮帮我,万分感谢。
我要脱的这个壳是:Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks,关于这个壳的脱壳例子在看雪论坛上有一张文章。我按照上面所说的方法去脱这个壳,但是在脱壳过程中遇到了一个麻烦。一个很菜很菜的问题想问问你们,希望你们能在百忙中抽出一点时间来为我解答一下,感谢!
脱这个壳的时候,我脱到:在401000处新建起源。F9却不能运行。我不知道是我那里操作错误了,由于在网上很少有这总动画看,我所知道的一切都是通过你们的专业术语加自己的理解得到的。不知道我的理解上有没有错。
具体如下。
OD加载程度。中断在:
00564433 >/$ 55 PUSH EBP *****中断
00564434 |. 8BEC MOV EBP,ESP
00564436 |. 6A FF PUSH -1
00564438 |. 68 88E15800 PUSH 游戏菜单.0058E188
0056443D |. 68 70415600 PUSH 游戏菜单.00564170 ; SE handler installation
00564442 |. 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
00564448 |. 50 PUSH EAX
00564449 |. 64:8925 00000>MOV DWORD PTR FS:[0],ESP
00564450 |. 83EC 58 SUB ESP,58
00564453 |. 53 PUSH EBX
00564454 |. 56 PUSH ESI
00564455 |. 57 PUSH EDI
00564456 |. 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP
00564459 |. FF15 88715800 CALL DWORD PTR DS:[<&KERNEL32.GetVersion>; kernel32.GetVersion
BP OpenMutexA + F9 中断在:
77E62391 > 55 PUSH EBP *****中断
77E62392 8BEC MOV EBP,ESP
77E62394 51 PUSH ECX
77E62395 51 PUSH ECX
77E62396 837D 10 00 CMP DWORD PTR SS:[EBP+10],0
77E6239A 56 PUSH ESI
77E6239B 0F84 C2E30100 JE kernel32.77E80763
77E623A1 64:A1 18000000 MOV EAX,DWORD PTR FS:[18]
77E623A7 FF75 10 PUSH DWORD PTR SS:[EBP+10]
77E623AA 8DB0 F80B0000 LEA ESI,DWORD PTR DS:[EAX+BF8]
77E623B0 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
77E623B3 50 PUSH EAX
77E623B4 FF15 8C10E477 CALL DWORD PTR DS:[<&ntdll.RtlInitAnsiSt>; ntdll.RtlInitAnsiString
77E623BA 6A 00 PUSH 0
77E623BC 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
堆栈内容:
0012F738 0054F01B /调用到 OpenMutexA from 游戏菜单.0054F015
0012F73C 001F0001 |Access = 1F0001
0012F740 00000000 |Inheritable = FALSE
0012F744 0012FDC8 \MutexName = "2E4:A9E32790A" 你们说的重要地址。 12FDC8
0012F748 77F517E6 RETURN to ntdll.77F517E6 from ntdll.77F78C4E
0012F74C 00000000
0012F750 7FFDF000
0012F754 003A0000
0012F758 003A1AC8
0012F75C 003A0000
Ctrl+G 4010000
显示如下:
00401000 0000 ADD BYTE PTR DS:[EAX],AL
00401002 0000 ADD BYTE PTR DS:[EAX],AL
00401004 0000 ADD BYTE PTR DS:[EAX],AL
00401006 0000 ADD BYTE PTR DS:[EAX],AL
00401008 0000 ADD BYTE PTR DS:[EAX],AL
0040100A 0000 ADD BYTE PTR DS:[EAX],AL
0040100C 0000 ADD BYTE PTR DS:[EAX],AL
00401000 处Ctrl+E 粘贴入以下内容:
00401000 60 pushad
00401001 9C pushfd
00401002 68 F0FB1200 push 12FDC8
00401007 33C0 xor eax,eax
00401009 50 push eax
0040100A 50 push eax
0040100B E8 2FDB407C call kernel32.CreateMutexA
00401010 9D popfd
00401011 61 popad
00401012 - E9 04DC407C jmp kernel32.OpenMutexA
00401000 处设为新起源...F9。没有反应。
请你们帮我分析一下是为什么好吗?
或者给我写E-mail.教教我。。呵呵。并不要求你们帮我脱掉这个壳,我只是想要学习其中的过程。beckjiang1@qq.com
希望有人能帮帮我,谢谢谢谢,为是共同的爱好,请你们一定要帮帮我,呵呵!我现在真的很菜,但是我一直都很努力!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)