好房网

网站首页 二手房 > 综合生活 > 正文

脱壳丰年虾卵怎么喂鱼(脱壳破解)

2022-07-26 05:41:47 综合生活 来源:
导读 想必现在有很多小伙伴对于脱壳破解方面的知识都比较想要了解,那么今天小好小编就为大家收集了一些关于脱壳破解方面的知识分享给大家,希

想必现在有很多小伙伴对于脱壳破解方面的知识都比较想要了解,那么今天小好小编就为大家收集了一些关于脱壳破解方面的知识分享给大家,希望大家会喜欢哦。

1、OD载入 隐藏OD 忽略所有异常

2、这个壳是穿山甲4.0的 软件官方说是双层加壳 这个我自己也不知道怎么看 全当是吧:)

3、研究一晚上发现下三个断点就可以直接找到OEP了!因为这个软件是双进程先要转换为单进程!

4、版权动归芝士新史回答网站或原要作者所产有

5、下断bp OpenMutexA SHIFT+F9

6、7C80EC1B > 8BFF MOV EDI,EDI ; ntdll.7C930738//断在这里

7、7C80EC1D 55 PUSH EBP

8、7C80EC1E 8BEC MOV EBP,ESP

9、7C80EC20 51 PUSH ECX

10、7C80EC21 51 PUSH ECX

11、7C80EC22 837D 10 00 CMP DWORD PTR SS:[EBP+10],0

12、7C80EC26 56 PUSH ESI

13、7C80EC27 0F84 7A500300 JE kernel32.7C843CA7

14、此时堆栈

15、0012F798 00543DB8 /CALL 到 OpenMutexA 来自 游戏菜单.00543DB2

16、0012F79C 001F0001 |Access = 1F0001

17、0012F7A0 00000000 |Inheritable = FALSE

18、0012F7A4 0012FDD8 MutexName = "75C:A5ED094E6" //0012FDD8

19、CTRL+G 00401000 输入代码

20、60 9C 68 D8 FD 12 00 33 C0 50 50 E8 2F DB 40 7C 9D 61 E9 04 DC 40 7C

21、在复制的代码处 新建EIP SHIFT+F9 再次断下 F2取消断点 CTRL+G->00401000 撤消修改

22、这样双进程就转换为单进程了!

23、此时 ALT+M 打开内存映象 在第一个.RSRC上 F2下断点 SHIFT+F9

24、断在这里 不管他 再ALT+M 在00401000 F2下断点 SHIFT+F9

25、7C93280D 66:8B50 0C MOV DX,WORD PTR DS:[EAX+C] //

26、的和年多全提,展车类界专识。

27、7C932811 66:8955 B0 MOV WORD PTR SS:[EBP-50],DX

28、7C932815 8D70 10 LEA ESI,DWORD PTR DS:[EAX+10]

29、一应因条及接她区做处转达整,集记界太状。

30、7C932818 8975 90 MOV DWORD PTR SS:[EBP-70],ESI

31、7C93281B 8B55 0C MOV EDX,DWORD PTR SS:[EBP+C]

32、7C93281E 66:F742 02 FFFF TEST WORD PTR DS:[EDX+2],0FFFF

33、7C932824 75 11 JNZ SHORT ntdll.7C932837

34、断在这里 现在就是要用F8慢慢跟了

35、00D8F68F 8B12 MOV EDX,DWORD PTR DS:[EDX]

36、00D8F691 8955 DC MOV DWORD PTR SS:[EBP-24],EDX

37、00D8F694 834D FC FF OR DWORD PTR SS:[EBP-4],FFFFFFFF

38、00D8F698 EB 11 JMP SHORT 00D8F6AB //跳

39、00D8F69A 6A 01 PUSH 1

40、00D8F69C 58 POP EAX

41、00D8F69D C3 RETN

42、00D8F69E 8B65 E8 MOV ESP,DWORD PTR SS:[EBP-18]

43、00D8F6A1 834D FC FF OR DWORD PTR SS:[EBP-4],FFFFFFFF

44、00D8F6A5 8B7D 08 MOV EDI,DWORD PTR SS:[EBP+8]

45、00D8F6A8 8B55 DC MOV EDX,DWORD PTR SS:[EBP-24]

46、00D8F6AB A1 E400DA00 MOV EAX,DWORD PTR DS:[DA00E4]

47、00D8F6B0 3190 88000000 XOR DWORD PTR DS:[EAX+88],EDX

48、00D8F6B6 A1 E400DA00 MOV EAX,DWORD PTR DS:[DA00E4]

49、00D8F6BB 3190 88000000 XOR DWORD PTR DS:[EAX+88],EDX

50、00D8F6C1 A1 E400DA00 MOV EAX,DWORD PTR DS:[DA00E4]

51、00D8F6C6 8B88 90000000 MOV ECX,DWORD PTR DS:[EAX+90]

52、00D8F6CC 3348 2C XOR ECX,DWORD PTR DS:[EAX+2C]

53、00D8F6CF 3348 18 XOR ECX,DWORD PTR DS:[EAX+18]

54、00D8F6D2 030D FC00DA00 ADD ECX,DWORD PTR DS:[DA00FC] ; 游戏菜单.00400000

55、00D8F6D8 8B17 MOV EDX,DWORD PTR DS:[EDI]

56、00D8F6DA 85D2 TEST EDX,EDX

57、00D8F6DC 75 1B JNZ SHORT 00D8F6F9 //跳

58、00D8F6DE FF77 18 PUSH DWORD PTR DS:[EDI+18]

59、00D8F6E1 FF77 14 PUSH DWORD PTR DS:[EDI+14]

60、00D8F6E4 FF77 10 PUSH DWORD PTR DS:[EDI+10]

61、00D8F6E7 8B90 90000000 MOV EDX,DWORD PTR DS:[EAX+90]

62、00D8F6ED 3350 40 XOR EDX,DWORD PTR DS:[EAX+40]

63、00D8F6F0 3350 04 XOR EDX,DWORD PTR DS:[EAX+4]

64、00D8F6F9 83FA 01 CMP EDX,1 //跳到这里 再F8

65、00D8F6FC 75 1E JNZ SHORT 00D8F71C

66、00D8F6FE FF77 04 PUSH DWORD PTR DS:[EDI+4]

67、00D8F701 FF77 08 PUSH DWORD PTR DS:[EDI+8]

68、00D8F704 6A 00 PUSH 0

69、00D8F706 FF77 0C PUSH DWORD PTR DS:[EDI+C]

70、00D8F709 8B90 90000000 MOV EDX,DWORD PTR DS:[EAX+90]

71、00D8F70F 3350 40 XOR EDX,DWORD PTR DS:[EAX+40]

72、00D8F712 3350 04 XOR EDX,DWORD PTR DS:[EAX+4]

73、00D8F715 2BCA SUB ECX,EDX

74、00D8F717 FFD1 CALL ECX ; 游戏菜单.004FE118 //这里就是OEP F7

75、F7后到这里

76、004FE118 55 PUSH EBP //这就是OEP 看样子是DELPHI的

77、004FE119 8BEC MOV EBP,ESP

78、004FE11B 83C4 F0 ADD ESP,-10

79、004FE11E B8 60DC4F00 MOV EAX,游戏菜单.004FDC60

80、004FE123 E8 8885F0FF CALL 游戏菜单.004066B0

81、004FE128 A1 B4315000 MOV EAX,DWORD PTR DS:[5031B4]

82、004FE12D 8B00 MOV EAX,DWORD PTR DS:[EAX]

83、004FE12F E8 9CA4F7FF CALL 游戏菜单.004785D0

84、OD不要关 -- 打开LordPE-修正映象大小--完全转存--保存为*.EXE文件 好作到这里先停着 从新加载一次目标文件 再重复作下面这个操作

85、下断bp OpenMutexA SHIFT+F9

86、7C80EC1B > 8BFF MOV EDI,EDI ; ntdll.7C930738//断在这里

87、7C80EC1D 55 PUSH EBP

88、7C80EC1E 8BEC MOV EBP,ESP

89、7C80EC20 51 PUSH ECX

90、7C80EC21 51 PUSH ECX

91、7C80EC22 837D 10 00 CMP DWORD PTR SS:[EBP+10],0

92、7C80EC26 56 PUSH ESI

93、7C80EC27 0F84 7A500300 JE kernel32.7C843CA7

94、此时堆栈

95、0012F798 00543DB8 /CALL 到 OpenMutexA 来自 游戏菜单.00543DB2

96、0012F79C 001F0001 |Access = 1F0001

97、0012F7A0 00000000 |Inheritable = FALSE

98、0012F7A4 0012FDD8 MutexName = "75C:A5ED094E6" //0012FDD8

99、CTRL+G 00401000 输入代码

100、60 9C 68 D8 FD 12 00 33 C0 50 50 E8 2F DB 40 7C 9D 61 E9 04 DC 40 7C

101、在复制的代码处 新建EIP SHIFT+F9 再次断下 F2取消断点 CTRL+G->00401000 撤消修改

102、这样双进程就转换为单进程了

103、因为第一次保存的是没有跳过IAT加密的文件也就是 魔法跳转 没有修改 所以运行时会出问题

104、下面我们来修改 魔法跳转 并去跳过IAT加密 下断点 HE GetModuleHandleA SHIFT+F9运行

105、中断在

106、7C80B529 > 8BFF MOV EDI,EDI ; ntdll.7C930738 //断中这里;注意看堆栈

107、7C80B52B 55 PUSH EBP

108、7C80B52C 8BEC MOV EBP,ESP

109、7C80B52E 837D 08 00 CMP DWORD PTR SS:[EBP+8],0

110、7C80B532 74 18 JE SHORT kernel32.7C80B54C

111、7C80B534 FF75 08 PUSH DWORD PTR SS:[EBP+8]

112、7C80B537 E8 682D0000 CALL kernel32.7C80E2A4

113、7C80B53C 85C0 TEST EAX,EAX

114、此时堆栈返回

115、0012FF38 0060F4FB /CALL 到 GetModuleHandleA 来自 mz.0060F4F5

116、0012FF3C 00000000 pModule = NULL

117、0012FF40 00000000

118、下面是每次 F9的堆栈返回

119、F9+1

120、0012E244 77C079B2 /CALL 到 GetModuleHandleA 来自 77C079AC

121、0012E248 77BE31BC pModule = "kernel32.dll"

122、0012E24C 77C31A70

123、F9+2

124、0012EC78 7365D4A4 /CALL 到 GetModuleHandleA 来自 msctfime.7365D49E

125、0012EC7C 0012EC80 pModule = "C:WINDOWSsystem32

126、tdll.dll"

127、0012EC80 575C3A43

128、F9+3

129、0012E884 77F45BB0 /CALL 到 GetModuleHandleA 来自 77F45BAA

130、0012E888 77F44FF4 pModule = "KERNEL32.DLL"

131、0012E88C 00000001

132、F9+4

133、0012F6B8 005F8D7B /CALL 到 GetModuleHandleA 来自 mz.005F8D75

134、0012F6BC 00000000 pModule = NULL

135、0012F6C0 001534B8

136、F9+5

137、0012967C 00D82FF1 /CALL 到 GetModuleHandleA 来自 00D82FEB //此时缓冲时间有点长

138、00129680 00D93D6C pModule = "kernel32.dll"

139、00129684 00D95D7C ASCII "VirtualAlloc" //看到这个就差不多快到了

140、F9+6

141、0012967C 00D8300E /CALL 到 GetModuleHandleA 来自 00D83008

142、00129680 00D93D6C pModule = "kernel32.dll"

143、00129684 00D95D70 ASCII "VirtualFree" //看到这个下一次就是返回时机了

144、F9+7

145、0012941C 00D75345 /CALL 到 GetModuleHandleA 来自 00D7533F //就是这里

146、00129420 00129558 pModule = "kernel32.dll"

147、00129424 0012EBA4

148、调式--硬件断点--删除断点--ALT+F9返回

149、00D75345 8B0D 34CFD900 MOV ECX,DWORD PTR DS:[D9CF34] //返回到这里

150、00D7534B 89040E MOV DWORD PTR DS:[ESI+ECX],EAX

151、00D7534E A1 34CFD900 MOV EAX,DWORD PTR DS:[D9CF34]

152、00D75353 393C06 CMP DWORD PTR DS:[ESI+EAX],EDI

153、00D75356 75 16 JNZ SHORT 00D7536E

154、00D75358 8D85 DCFEFFFF LEA EAX,DWORD PTR SS:[EBP-124]

155、00D7535E 50 PUSH EAX

156、00D7535F FF15 90E0D800 CALL DWORD PTR DS:[D8E090] ; kernel32.LoadLibraryA

157、//不记得是哪位大哥说过 在返回的LoadLibraryA下面的第一个JE就是MJ了 呵呵

158、00D75365 8B0D 34CFD900 MOV ECX,DWORD PTR DS:[D9CF34]

159、00D7536B 89040E MOV DWORD PTR DS:[ESI+ECX],EAX

160、00D7536E A1 34CFD900 MOV EAX,DWORD PTR DS:[D9CF34]

161、00D75373 393C06 CMP DWORD PTR DS:[ESI+EAX],EDI

162、00D75376 0F84 2F010000 JE 00D754AB //这个就是我们要找的MJ了 JE改为JMP

163、00D7537C 33C9 XOR ECX,ECX

164、00D7537E 8B03 MOV EAX,DWORD PTR DS:[EBX]

165、00D75380 3938 CMP DWORD PTR DS:[EAX],EDI

166、00D75382 74 06 JE SHORT 00D7538A

167、这时我们再下另一个断点 BP GetTickCount SHIFT+F9 运行

168、中断在这里

169、7C8092AC > BA 0000FE7F MOV EDX,7FFE0000 //中断点

170、7C8092B1 8B02 MOV EAX,DWORD PTR DS:[EDX]

171、7C8092B3 F762 04 MUL DWORD PTR DS:[EDX+4]

172、7C8092B6 0FACD0 18 SHRD EAX,EDX,18

173、7C8092BA C3 RETN

174、F2取消断点 ALT+F9 返回程序

175、返回到这里

176、00D8C003 FF15 7C62D900 CALL DWORD PTR DS:[D9627C] ; kernel32.GetTickCount

177、00D8C009 8985 A4D4FFFF MOV DWORD PTR SS:[EBP-2B5C],EAX

178、00D8C00F 6A 01 PUSH 1

179、00D8C011 58 POP EAX

180、00D8C012 85C0 TEST EAX,EAX

181、00D8C014 0F84 A8030000 JE 00D8C3C2

182、看到代码

183、00D8C003 FF15 7C62D900 CALL DWORD PTR DS:[D9627C] ; kernel32.GetTickCount //这里了 一共有两处 向下找另一处

184、另一处代码

185、00D8C3C2 FF15 7C62D900 CALL DWORD PTR DS:[D9627C] ; kernel32.GetTickCount //另一处

186、00D8C3C8 2B85 A4D4FFFF SUB EAX,DWORD PTR SS:[EBP-2B5C]

187、00D8C3CE 8B8D A8D4FFFF MOV ECX,DWORD PTR SS:[EBP-2B58]

188、00D8C3D4 6BC9 32 IMUL ECX,ECX,32

189、00D8C3D7 81C1 D0070000 ADD ECX,7D0

190、00D8C3DD 3BC1 CMP EAX,ECX

191、00D8C3DF 76 07 JBE SHORT 00D8C3E8 //把这个改为 JMP 再F9运行

192、程序停在

193、00D8C977 8B8D 18C1FFFF MOV ECX,DWORD PTR SS:[EBP-3EE8]

194、00D8C97D 8B09 MOV ECX,DWORD PTR DS:[ECX]

195、00D8C97F 8901 MOV DWORD PTR DS:[ECX],EAX

196、00D8C981 8B85 18C1FFFF MOV EAX,DWORD PTR SS:[EBP-3EE8]

197、00D8C987 83C0 04 ADD EAX,4

198、00D8C98A 8985 18C1FFFF MOV DWORD PTR SS:[EBP-3EE8],EAX

199、00D8C990 ^ EB CA JMP SHORT 00D8C95C

200、00D8C992 96 XCHG EAX,ESI

201、00D8C993 66:87C9 XCHG CX,CX

202、00D8C996 96 XCHG EAX,ESI

203、现在我们再打开ImportREC--OEP处填写FE118 (004FE118-00400000)--自动查找IAT--获取输入表--显示无效的--剪切指针--修复转存文件--选中你用LORDPE保存的EXE文件 OK 完成

本文到此结束,希望对大家有所帮助。


版权说明: 本文由用户上传,如有侵权请联系删除!


标签: