在试着破解一个游戏外挂
打开文件提示请把文件放在游戏根目录下
这样的情况是否需要游戏客户端才能破解?或者说有客户端才能更方便的破解?
我在虚拟机下破解那不是还要把游戏装到虚拟机~而且我的虚拟机带不起游戏(无显卡)~
用PEID查壳 提示什么都没有找到~~
以前用过木马彩衣好像是可以让程序伪装的~~可以伪装成什么都没找到~
或者伪装成BUILD WITH VC++5.0之类的~~我估计还是有壳的吧
PE段竟然显示nimabi 是不是别人故意改的`~居然骂我~~
我用OD载入
发现第一句不是PUSHAD而是PUSHFD只保存标志寄存器的值?
第二句就是CALL而这个CALL我感觉没什么意义~~因为CALL的程序的入口就是下一条语句~
莫非这个CALL的意义就在于要把EIP入栈?
发现一开始的代码如下
0040C000 > 9C pushfd
0040C001 E8 00000000 call xuping00.0040C006
0040C006 5D pop ebp
0040C007 8BD5 mov edx,ebp
0040C009 81ED C62B4000 sub ebp,xuping00.00402BC6
0040C00F 2B95 61344000 sub edx,dword ptr ss:[ebp+403461>
0040C015 81EA 06000000 sub edx,6
0040C01B 8995 65344000 mov dword ptr ss:[ebp+403465],ed>
0040C021 83BD 69344000 00 cmp dword ptr ss:[ebp+403469],0
0040C028 0F85 BC030000 jnz xuping00.0040C3EA
0040C02E C785 69344000 010>mov dword ptr ss:[ebp+403469],1
0040C038 B9 88070000 mov ecx,788
0040C03D 8DB5 182C4000 lea esi,dword ptr ss:[ebp+402C18>
0040C043 8A85 60344000 mov al,byte ptr ss:[ebp+403460]
0040C049 8A1E mov bl,byte ptr ds:[esi]
0040C04B 32C3 xor al,bl
0040C04D 8806 mov byte ptr ds:[esi],al
0040C04F 889D 60344000 mov byte ptr ss:[ebp+403460],bl
0040C055 46 inc esi
0040C056 ^ E2 EB loopd short xuping00.0040C043
0040C058 9C pushfd
0040C059 58 pop eax
0040C05A F6C4 01 test ah,1
0040C05D 74 07 je short xuping00.0040C066
0040C05F 80B5 D72F4000 FF xor byte ptr ss:[ebp+402FD7],0FF
0040C066 8BB5 01324000 mov esi,dword ptr ss:[ebp+403201>
0040C06C 8BC5 mov eax,ebp
0040C06E 56 push esi
0040C06F 50 push eax
0040C070 8B88 09324000 mov ecx,dword ptr ds:[eax+403209>
0040C076 6A 04 push 4
0040C078 68 00100000 push 1000
0040C07D 51 push ecx
0040C07E 6A 00 push 0
0040C080 FF95 EC334000 call dword ptr ss:[ebp+4033EC]
0040C086 8985 E1314000 mov dword ptr ss:[ebp+4031E1],ea>
0040C08C 58 pop eax
0040C08D 5E pop esi
0040C08E 56 push esi
0040C08F 50 push eax
0040C090 8BB0 05324000 mov esi,dword ptr ds:[eax+403205>
0040C096 8B95 65344000 mov edx,dword ptr ss:[ebp+403465>
0040C09C 8B88 09324000 mov ecx,dword ptr ds:[eax+403209>
0040C0A2 03F2 add esi,edx
0040C0A4 60 pushad
程序走了一段之后才看到PUSHAD~~~我就脱过UPX壳~~都是一开始就是PUSHAD~~
像这样的壳~单步调试的话靠什么判断到壳的出口了?我看到很多程序里面经常有很多PUSHAD的啊~~全部寄存器入栈~~在程序中经常调用也是正常的~~为什么UPX壳就是POPAD就到出口了~~就不能有别人PUSHAD对应这个POPAD?
破解完全新手~~希望有人指点!!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)