吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 2510|回复: 3

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

 关闭 [复制链接]
puagin 发表于 2014-12-23 23:11 | 显示全部楼层 |阅读模式

本站严厉禁止求脱求破行为(包含无自我分析直接求思路),如发现此类求助主题请点击“举报”,让我们共同维护优质的学习环境!


100HB
本帖最后由 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:[esp+0x40]
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:[esp+0x80]          ; |
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 EB  mov byte ptr ss:[esp+0x2A],0xEB          ; |
004013A7  |.  C64424 2B FE  mov byte ptr ss:[esp+0x2B],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:[esp+0x1A]          ; |
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:[esp+0x3C]
004013C5  |.  50            push eax                                 ; /hThread
004013C6  |.  FF15 C4214100 call dword ptr ds:[<&kernel32.ResumeThre>; \ResumeThread
004013CC  |.  C78424 000300>mov dword ptr ss:[esp+0x300],0x10007
004013D7  |>  8B5424 3C     /mov edx,dword ptr ss:[esp+0x3C]
004013DB  |.  8D8C24 000300>|lea ecx,dword ptr ss:[esp+0x300]
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:[esp+0x3B8],ebp
004013F1  |.^ 75 E4         \jnz Xunpacked.004013D7
004013F3  |.  8B4424 3C     mov eax,dword ptr ss:[esp+0x3C]
004013F7  |.  50            push eax                                 ; /hThread
004013F8  |.  FF15 CC214100 call dword ptr ds:[<&kernel32.SuspendThr>; \SuspendThread
004013FE  |.  8B4C24 28     mov ecx,dword ptr ss:[esp+0x28]
00401402  |.  51            push ecx                                 ; /pModule
00401403  |.  FF15 D0214100 call dword ptr ds:[<&kernel32.GetModuleH>; \GetModuleHandleA
00401409  |.  8B5424 30     mov edx,dword ptr ss:[esp+0x30]
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

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






点评

520Kelly”点评说:
请详细补充分析!不然违规的!  发表于 2014-12-23 23:23
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
我必须_说谎 发表于 2014-12-23 23:11 | 显示全部楼层

最佳答案本应属于楼主私有,因此限制查看

您还有0次查看次数,点此查看答案

点此购买查看次数
也可以兑换VIP特权或加入解密专家,每日可免费查看5次最佳答案!

评分

参与人数 2HB +1 THX +1 荣耀 +1 收起 理由
Shark恒 + 1
puagin + 1 + 1 好人有好报!你的热心我永远不忘!谢谢!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| puagin 发表于 2014-12-24 13:35 | 显示全部楼层

我必须_说谎 发表于 2014-12-24 08:47
那就代表是hook了.
申请内存  dll注入  .  等等.  一般是在验证dll里处理的

呃,经某大牛指点,已经确认所有数据。但是我不是为了逆向,所以用处不大。不过总算是多学了一招吧,另外我还是想知道他怎么实现的。如果明天还没有更好的回答这个分就送你了.

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表