puagin 发表于 2014-12-23 23:11

<求助> 关于易游山寨补丁实现原理

本帖最后由 puagin 于 2014-12-24 00:01 编辑

主程式没办法找了(我也是远程看过,我也木有)。。。。
只有补丁和一个D LL
最近在研究EY,看他这个就想研究一下,可以研究半天
没发现他有程式码,他是怎么实现的?想知道大致原理,特别是他的程式码是怎么换掉了。

壳 : Aspack v2.24-2.32 ( 07.2013 )
到这应该就是干货的地方了
00401372|. |6A 00         push 0x0                                 ; /ExitCode = 0x0                                       
00401374|. |FF15 B4214100 call dword ptr ds:[<&kernel32.ExitProces>; \ExitProcess
0040137A|> \8B4424 40   mov eax,dword ptr ss:
0040137E|.50            push eax                                 ; /ProcessId
0040137F|.6A 00         push 0x0                                 ; |Inheritable = FALSE
00401381|.68 FF0F1F00   push 0x1F0FFF                            ; |Access = PROCESS_ALL_ACCESS
00401386|.FF15 B8214100 call dword ptr ds:[<&kernel32.OpenProces>; \OpenProcess
0040138C|.8B3D BC214100 mov edi,dword ptr ds:[<&kernel32.ReadPro>;kernel32.ReadProcessMemory
00401392|.6A 00         push 0x0                                 ; /pBytesRead = NULL
00401394|.8D8C24 800000>lea ecx,dword ptr ss:          ; |
0040139B|.6A 02         push 0x2                                 ; |BytesToRead = 0x2
0040139D|.8BF0          mov esi,eax                              ; |
0040139F|.51            push ecx                                 ; |Buffer
004013A0|.55            push ebp                                 ; |pBaseAddress
004013A1|.56            push esi                                 ; |hProcess
004013A2|.C64424 2A EBmov byte ptr ss:,0xEB          ; |
004013A7|.C64424 2B FEmov byte ptr ss:,0xFE          ; |
004013AC|.FFD7          call edi                                 ; \ReadProcessMemory
004013AE|.8B1D C0214100 mov ebx,dword ptr ds:[<&kernel32.WritePr>;kernel32.WriteProcessMemory
004013B4|.6A 00         push 0x0                                 ; /pBytesWritten = NULL
004013B6|.8D5424 1A   lea edx,dword ptr ss:          ; |
004013BA|.6A 02         push 0x2                                 ; |BytesToWrite = 0x2
004013BC|.52            push edx                                 ; |Buffer
004013BD|.55            push ebp                                 ; |Address
004013BE|.56            push esi                                 ; |hProcess
004013BF|.FFD3          call ebx                                 ; \WriteProcessMemory
004013C1|.8B4424 3C   mov eax,dword ptr ss:
004013C5|.50            push eax                                 ; /hThread
004013C6|.FF15 C4214100 call dword ptr ds:[<&kernel32.ResumeThre>; \ResumeThread
004013CC|.C78424 000300>mov dword ptr ss:,0x10007
004013D7|>8B5424 3C   /mov edx,dword ptr ss:
004013DB|.8D8C24 000300>|lea ecx,dword ptr ss:
004013E2|.51            |push ecx                              ; /pContext
004013E3|.52            |push edx                              ; |hThread
004013E4|.FF15 C8214100 |call dword ptr ds:[<&kernel32.GetThread>; \GetThreadContext
004013EA|.39AC24 B80300>|cmp dword ptr ss:,ebp
004013F1|.^ 75 E4         \jnz Xunpacked.004013D7
004013F3|.8B4424 3C   mov eax,dword ptr ss:
004013F7|.50            push eax                                 ; /hThread
004013F8|.FF15 CC214100 call dword ptr ds:[<&kernel32.SuspendThr>; \SuspendThread
004013FE|.8B4C24 28   mov ecx,dword ptr ss:
00401402|.51            push ecx                                 ; /pModule
00401403|.FF15 D0214100 call dword ptr ds:[<&kernel32.GetModuleH>; \GetModuleHandleA
00401409|.8B5424 30   mov edx,dword ptr ss:
0040140D|.52            push edx                                 ; /ProcNameOrOrdinal
0040140E|.50            push eax                                 ; |hModule
0040140F|.FF15 D4214100 call dword ptr ds:[<&kernel32.GetProcAdd>; \GetProcAddress


地址:
链接: http://pan.baidu.com/s/1bn5yYrP 密码: 04tb

{:5_184:}呃,@520Kelly,这样不知道可不可以?如果还不行,你出手吧,轻点就行。。。。。。。。。






我必须_说谎 发表于 2014-12-23 23:11

那就代表是hook了.
申请内存dll注入.等等.一般是在验证dll里处理的

puagin 发表于 2014-12-24 13:35

我必须_说谎 发表于 2014-12-24 08:47
那就代表是hook了.
申请内存dll注入.等等.一般是在验证dll里处理的
呃,经某大牛指点,已经确认所有数据。但是我不是为了逆向,所以用处不大。不过总算是多学了一招吧,另外我还是想知道他怎么实现的。如果明天还没有更好的回答这个分就送你了.

页: [1]
查看完整版本: <求助> 关于易游山寨补丁实现原理