青春时代是一个短暂的美梦,当你醒来时,它早已消失得无影无踪了。
 
今日:0    总帖:273
admin
1588
转自看雪论坛:https://bbs.pediy.com/thread-249594.htm通过CPUID原理:通过检查功能号1的CPUID返回的ecx的最高位是否为1,如果为1,则在虚拟环境下运行。真机的最高位不为1。检测处理器是否支持 cpuid 指令(忽略这一条)现在的CPU都支持 cpuid 指令,没必要去检测是否支持,除非在很早的的机器上运行才有必要(那好像也要80486的机器吧)。在 eflags.ID 标志位是 Processor Feature Identification 位,即最高位,通过修改这个标志位的值,以此来检测是否支持 cpuid 指令。要使用CPUID指令,输入eax表示功能号(类似中断的用法)输出eax,ebx,ecx,edx在EDX和ECX中返回的功能标志表明着该CPU都支持那些功能。ECX返回值定义如下(资料来自Intel):bit Name Description --------------------------------------------------------- 00 SSE3 Streaming SIMD Extensions 3 01 Reserved 02 DTES64 64-Bit Debug Store 03 MONITOR MONITOR/MWAIT 04 DS-CPL CPL Qualified Debug Store 05 VMX Virtual Machine Extensions 06 SMX Safer Mode Extensions 07 EST Enhanced Intel SpeedStep® Technology 08 TM2 Thermal Monitor 2 09 SSSE3 Supplemental Streaming SIMD Extensions 3 10 CNXT-ID L1 Context ID 12:11 Reserved 13 CX16 CMPXCHG16B 14 xTPR xTPR Update Control 15 PDCM Perfmon and Debug Capability 17:16 Reserved 18 DCA Direct Cache Access 19 SSE4.1 Streaming SIMD Extensions 4.1 20 SSE4.2 Streaming SIMD Extensions 4.2 21 x2APIC Extended xAPIC Support 22 MOVBE MOVBE Instruction 23 POPCNT POPCNT Instruction 25:24 Reserved 26 XSAVE XSAVE/XSTOR States 27 OSXSAVE 31:28 Reserved 下面是使用CPUID检测的核心汇编代码: .CODE getcpuid PROC xor eax,eax mov eax,1h cpuid mov a,eax mov b,ebx mov c_var,ecx mov d,edx ret getcpuid ENDP END 通过利用IoInitializeTimer配合IoStartTimer的定时器来循环判定。遍历模块我们说到的第一种CPUID的方法可能通过修改VMX的配置等方法绕过。还有一种方式是遍历当前系统中所有的sys。我们要查找的是vmmouse.sys,vmrawdsk.sys,vmusbmouse.sys中的任意一个。核心是利用NtQuerySystemInformation:#include <ntddk.h> #include <windef.h> typedef struct _SYSTEM_MODULE_INFORMATION_ENTRY { HANDLE Section; PVOID MappedBase; PVOID Base; ULONG Size; ULONG Flags; USHORT LoadOrderIndex; USHORT InitOrderIndex; USHORT LoadCount; USHORT PathLength; CHAR ImageName[256]; } SYSTEM_MODULE_INFORMATION, *PSYSTEM_MODULE_INFORMATION; typedef NTSTATUS(*NTQUERYSYSTEMINFORMATION) ( IN ULONG SystemInformationClass, OUT PVOID SystemInformation, IN ULONG_PTR SystemInformationLength, OUT PULONG_PTR ReturnLength OPTIONAL ); VOID getcpuid(); BOOLEAN CheckDriverModule(); UNICODE_STRING symLinkName = { 0 }; PDEVICE_OBJECT pDevice; PETHREAD pThreadObject = NULL; BOOLEAN boom = FALSE; //eax为CPU型号 //若为虚拟机,则ecx最高位为1;如果是物理机,则最高位为0. //code in cpuid.asm DWORD a = 0, b = 0, c_var = 0, d = 0; VOID Unload() {//PDRIVER_OBJECT DriverObject if (pThreadObject) { boom = TRUE; KeWaitForSingleObject(pThreadObject, Executive, KernelMode, FALSE, NULL); } if (pDevice) { IoStopTimer(pDevice); IoDeleteSymbolicLink(&symLinkName); IoDeleteDevice(pDevice); pDevice = NULL; } DbgPrint("Unload --------"); } VOID TimerRoutine(PDEVICE_OBJECT DeviceObject, PVOID context) { DbgPrint("In TimerRoutine\n"); //Begin normal check getcpuid(); c_var = c_var >> 31; if (c_var){ DbgPrint("Running in the virtual machine 2. Find VMWare by CPUID!!!!\n"); } } BOOLEAN CheckDriverModule() { BOOLEAN bRet = FALSE; NTQUERYSYSTEMINFORMATION m_NtQuerySystemInformation = NULL; UNICODE_STRING NtQuerySystemInformation_Name = { 0 }; PSYSTEM_MODULE_INFORMATION ModuleEntry = NULL; ULONG_PTR RetLength = 0, BaseAddr = 0, EndAddr = 0; ULONG ModuleNums = 0, Index = 0; NTSTATUS status = STATUS_SUCCESS; PVOID Buffer = NULL; RtlInitUnicodeString(&NtQuerySystemInformation_Name, L"NtQuerySystemInformation"); do { m_NtQuerySystemInformation = (NTQUERYSYSTEMINFORMATION)MmGetSystemRoutineAddress(&NtQuerySystemInformation_Name); if (m_NtQuerySystemInformation == NULL) { bRet = TRUE; break; } status = m_NtQuerySystemInformation(0xb, NULL, 0, &RetLength); if (status < 0 && status != STATUS_INFO_LENGTH_MISMATCH) { bRet = TRUE; break; } Buffer = ExAllocatePoolWithTag(PagedPool, RetLength, "ytz"); if (Buffer == NULL) { bRet = TRUE; break; } RtlZeroMemory(Buffer, RetLength); status = m_NtQuerySystemInformation(0xb, Buffer, RetLength, &RetLength); if (status < 0) { bRet = TRUE; break; } ModuleNums = *(ULONG*)Buffer; ModuleEntry = (PSYSTEM_MODULE_INFORMATION)((ULONG_PTR)Buffer + 8); for (Index = 0; Index < ModuleNums; Index++) { if (strstr(ModuleEntry->ImageName, "vmmouse.sys") || strstr(ModuleEntry->ImageName, "vmrawdsk.sys") || strstr(ModuleEntry->ImageName, "vmusbmouse.sys")) { DbgPrint("The Module Name is %s\n", ModuleEntry->ImageName); bRet = TRUE; break; } ModuleEntry++; } break; //Amuse } while (TRUE); if (Buffer) { ExFreePool(Buffer); Buffer = NULL; } return bRet; } VOID CheckVmWare(PVOID context) { LARGE_INTEGER sleeptime = { 0 }; sleeptime.QuadPart = -20000000; while (1) { if (boom) break; if (CheckDriverModule()) { DbgPrint("Running in the virtual machine 1. Find VMWare!!!!\n"); } DbgPrint("Thread is working"); KeDelayExecutionThread(KernelMode, 0, &sleeptime); } PsTerminateSystemThread(STATUS_SUCCESS); } NTSTATUS DriverEntry(PDRIVER_OBJECT driverObject, PUNICODE_STRING RegPath) { HANDLE hThread = NULL; NTSTATUS status = NULL; UNICODE_STRING DeviceName = { 0 }; driverObject->DriverUnload = Unload; status = PsCreateSystemThread(&hThread, 0, NULL, NULL, NULL, CheckVmWare, NULL); if (!NT_SUCCESS(status)) { DbgPrint("Create Thread Failed!\n"); return STATUS_UNSUCCESSFUL; } status = ObReferenceObjectByHandle(hThread, THREAD_ALL_ACCESS, *PsThreadType, KernelMode, &pThreadObject, NULL); if (!NT_SUCCESS(status)) { DbgPrint("Cannot reference"); ObDereferenceObject(pThreadObject); } RtlInitUnicodeString(&DeviceName, L"\\Device\\MyDevices"); status = IoCreateDevice(driverObject, 0, &DeviceName, FILE_DEVICE_UNKNOWN, 0, TRUE, &pDevice); if (!NT_SUCCESS(status)) { DbgPrint("Create Device Failed!"); return STATUS_UNSUCCESSFUL; } RtlInitUnicodeString(&symLinkName, "\\?\\SybLinkName"); status = IoCreateSymbolicLink(&symLinkName, &DeviceName); if (!NT_SUCCESS(status)) { DbgPrint("Create SymLink Failed!"); //return STATUS_UNSUCCESSFUL; } IoInitializeTimer(pDevice, (PIO_TIMER_ROUTINE)TimerRoutine, NULL); IoStartTimer(pDevice); ZwClose(hThread); return STATUS_SUCCESS; }注:在X64下使用上文的汇编代码时,需要修改下asm的属性。效果: github:https://github.com/pcy190/DriverKit/tree/master/AntiVirtualMachine_driver
开发 2 0 459天前
admin
1575
名称:vSphere-KeyMaker-v6 (VMWare 虚拟化学习序列号生成工具) 大小:44kb 语言:英语 授权:免费软件 更新: 官网:未知 平台:Windows介绍:  没有更多介绍截图: 下载地址:点击下载
工具 2 0 464天前
admin
2574
在Windows Server2008 R2下安装vCenter6.7时,在快要安装结束时,出现了VMware Virtualcenter failed firstboot. Failed to generate VirtualCenter symmetric encryption key。的错误,如下图 于是安装失败,只能回滚操作 经过查找资料后发现,原来是缺少了MS17-010和MS17-012补丁 关于这两个补丁的资料,MS17-010   MS17-012 官方下载地址:MS17-010    MS17-012 耐心等待两个补丁安装完成          再次尝试进行安装,发现之前的报错已经消失,可以正常完成安装
教程与文档 2 0 464天前
admin
7465
最近在折腾VM虚拟化时遇到一些问题,以下内容仅作为记录留存 ESXI 6.x 正常使用U盘升级(安装)会卡住在 bnxtroce.v00。 看到有人讨论说U盘安装会出问题,推荐刻录成光盘引导。 但这年头个人谁还有光驱? 不过倒是有点思路了。 默认 UltraISO 制作光盘启动是采用 USB-HDD+ 方式。 换成 USB-HDD+ v2 方式估计就成了。(也有说使用USB-ZIP+v2的,当时没试验,如果有兴趣的可以尝试下) 一试,果然没错。
教程与文档 2 0 464天前
admin
4380
相信我们在使用XP、2003最苦恼的一种情况就是某天开机突然提示: 童年一直觉得这个问题除了按提示说的使用安装盘才能解决,直到长大以后才发现好傻。。。 那么如果出现这种情况该怎么解决呢? (1)直接复制装完系统以后系统备份的那个文件过来替换即可(不丢失大部分数据,仅丢失驱动及部分软件信息) 是的,你没看错,就是直接复制过来就可以了,不信,那就按以下操作试下看看就知道了,不是吗 ① 首先我们需要准备好一个PE工具箱,这里可以使用我们的 点击跳转,也可以使用第三方的,不需要太多功能,只需要有一个PE系统,或者带有DOS工具箱的即可(如果使用DOS工具箱,请查看第四条) ②准备好以后,重启,用U盘引导,进入PE工具箱,启动PE系统,然后等待启动完成以后,到我们的系统目录下寻找一个repair的文件夹,双击打开,是不是可以看到里面有几个文件,其他我们不用管,只需要把那个SYSTEM复制到我们提示文件丢失的那个文件夹里(C:\windows\system32\config)替换原有文件即可。 ③重启,是不是发现已经可以正常启动了, 但此时会发现一些软件无法正常运行,这是正常的,因为SYSTEM这个文件里面包含了一些程序所需要的参数,而我们修复这个文件实际上就是把这个文件初始化了,接下去我们只需要把这些无法正常运行的软件重新安装一下即可 ④该条适用于DOS工具箱:进入DOS工具箱,如果我们的DOS工具箱没有自行挂载NTFS分区,建议手动执行下挂载,然后输入以下命令:c:\ Cd c:\Windows\repair Copy system c:\Windows\system32\config\system 然后,重启即可 (2)按照文字所述方法进行修复 (3)重装系统(极不推荐,除非说正好为没有理由而重装系统而烦恼的时候)=================================================================== 注意: 1.如果是Windows Vista及以上版本,该问题已转由系统可以自行进行修复,如果系统无法修复,可尝试到C:\Windows\System32\config\RegBack 查看是否有备份 2.如果有使用数据库的,使用以上第一个方法会导致数据库无法正常使用,但请放心,数据并没有丢失,而我们也不需要按照网上说的执行卸载数据库引擎,再重新安装(这样会导致数据库丢失,如果复制出来,后续也需要重新合并) 解决方法: ① 首先打开CMD,然后执行这个命令:sc create MSSQLSERVER binpath= "文件路径" displayname= "MSSQLSERVER" start= auto 注意这里的格式,“=”后面是必须空一格的,否则会出现错误。 执行完成以后,查看服务里面是否已经多一条MSSQLSERVER的服务,有的话,尝试启动,看能否正常启动,如果没有其他问题一般都是可以正常启动的,只要可以启动,那基本上已经成功一半了 ② 在开始菜单或添加卸载程序里,找到mssql,然后选择修复,等待完成后重启(中途可能会提示一些错误,直接忽略就可以了,因为有些东西我们并没有修复,但不会影响使用),如无意外一般都可以正常使用了
维护 3 0 466天前
admin
1574
您需要登录并回复后才可以查看该文章内容
教程与文档 2 0 488天前
admin
1592
jQuery自诞生以来,版本越来越多,而且jQuery官网的新版本还在不断的更新和发布中,现已经达到了2.x甚至更新的版本,但是我们在以前的项目中就已经使用了旧版本的jQuery,比如已经出现的:1.3.X、1.4.X、1.5.X、1.6.2等等。 由于项目的需要,必然也需要不断的使用较新版的jQuery,但对于原来就已经存在并已经采用了的旧jQuery版本,我们如何让多个不同的jQuery版本在同一个页面并存而不冲突呢? 其实,利用jQuery.noConflict()特性,我们不仅可以让jQuery与其他的JS库并存,比如Prototype。也可以与jQuery本身的其他不同版本并存而不冲突。<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>在同一个页面中加载多个不同的jQuery版本</title> <!-- 加载jQuery最新版本--> <script type="text/javascript" src="http://api.csource.com.cn/index.php?dir=&file=jquery-3.3.1.min.js"></script> <script type="text/javascript">var jQuery_New = $.noConflict(true);</script> <!-- 加载jQuery1.6.2版本--> <script type="text/javascript" src="http://api.csource.com.cn/index.php?dir=&file=jquery-1.6.2.min.js"></script> <script type="text/javascript">var jQuery_1_6_2 = $.noConflict(true);</script> <!-- 加载jQuery1.5.2版本--> <script type="text/javascript" src="http://api.csource.com.cn/index.php?dir=&file=jquery-1.5.2.min.js"></script> <script type="text/javascript">var jQuery_1_5_2 = $.noConflict(true);</script> <!-- 加载jQuery1.4.2版本--> <script type="text/javascript" src="http://api.csource.com.cn/index.php?dir=&file=jquery-1.4.2.min.js"></script> <script type="text/javascript">var jQuery_1_4_2 = $.noConflict(true);</script> <!-- 加载jQuery1.3.2版本--> <script type="text/javascript" src="http://api.csource.com.cn/index.php?dir=&file=jquery-1.3.2.min.js"></script> <script type="text/javascript">var jQuery_1_3_2 = $.noConflict(true);</script> <!-- 测试效果 --> <script type="text/javascript"> alert(jQuery_New.fn.jquery); alert(jQuery_1_6_2.fn.jquery); alert(jQuery_1_5_2.fn.jquery); alert(jQuery_1_4_2.fn.jquery); alert(jQuery_1_3_2.fn.jquery); jQuery_New(function($){$('<p>我是最新的'+$.fn.jquery+'版本添加进来的。</p>').appendTo('body');}); jQuery_1_6_2(function($){$('<p>我是'+$.fn.jquery+'版本添加进来的。</p>').appendTo('body');}); jQuery_1_5_2(function($){$('<p>我是'+$.fn.jquery+'版本添加进来的。</p>').appendTo('body');}); jQuery_1_4_2(function($){$('<p>我是'+$.fn.jquery+'版本添加进来的。</p>').appendTo('body');}); jQuery_1_3_2(function($){$('<p>我是'+$.fn.jquery+'版本添加进来的。</p>').appendTo('body');}); </script> </head> <body> 在同一个页面中加载多个不同的jQuery版本 <br> </body> </html>文件所用jsquery均可在:http://api.csource.com.cn/ 获取
开发 2 0 500天前
admin
2126
名称:FbinstTool多版本选择工具 语言:中文 授权:免费软件 官网:http://bbs.csource.com.cn 平台:Windows 介绍:      FbinstTool是一款可以方便制作可启动U盘的软件,可以用来制作winpe,做GHO还原系统的U盘启动引导工具。FbinstTool的特点是安全,不像量产那样危险,还要找各种各样的量产工具。FbinstTool通过产生一个隐藏的分区来保存文件,只读,兼容性好,对于老机器不能用量产U盘启动的也能支持一部分。维护方便,可以对隐藏区域进行文件管理。我们知道目前有1.6、1.7,有时候需要准备两个版本总觉得很不方便,那么有了该软件你从此不需考虑那么多,软件集成1.5、1.6、1.7三大版本,支持自动识别U盘已初始化版本运行截图:下载地址:点击下载源码下载:点击访问
工具 2 0 518天前
admin
1838
≡★★★Source 维护工具盘★★★≡ 经过近些年的不断完善,目前工具箱已更新至2.0系列,优化结构,调整细节,只为做一个最专业的维护工具箱相较于1.0系列,目前2.0全面摒弃1.0的引导结构,转而采用更清晰的结构,同时2.0系列全系列支持UEFI引导方式,在软件方面,对PE中与菜单中部分无用或版本过旧软件进行相应精简与更新。特色功能:1.系统密码破解(本地账户全系列支持,Server 2019版未做测试)2.Win10 PE中完善Office 2007工具包,Aida64硬件检测工具,让PE不在仅仅只是一个重装系统的工具3.支持Uefi启动4.电脑公司DOS工具箱定制版,更多的功能,只为给需要的人5.PE所有版本均使用手动GHOST,我们承诺安装过程绝不修改主页站长温馨提醒:由于制作者能力有限,目前仅提供FBA文件版本和ISO镜像供下载使用,请参阅安装教程说明,站长不对使用不当导致的数据丢失负责!文件结构: |-PE |--10PE.iso |--10PEx64.iso (网络版) |--7PE.iso (低端配置建议使用) |-Tools |--Crack |---crack32.iso |---crack64.iso |---konboot.img |---konbootOLD.img |--DOS |---ARDOS53.img //矮人DOS工具箱 |---DOSTOOLS.IMA //电脑公司版DOS工具箱 |---HYDOS.img //红叶DOS工具箱 |---maxdos.img //MAXDOS工具箱 |--Disk |---adds216.img |---diskgen.img |---dm10.img |---dm957.ima |---f32.ima |---gdisk.img |---pm80st.img |---sfdisk.img |--Scan |---ati2010.iso |---diskfix.img |---ibmdft.img |---jm.img |---low.img |---memtest.img |---mhdd4.6.img |---pc3000.img |---pccheck.img |---sea.ima |---wddlt28.img |---windiag.img |---xly.img |-crack.lst |-dos.lst |-efi0.img //UEFI启动 |-fq.lst |-ghost.img |-grldr //核心引导文件 |-menu.lst |-message //背景文件 |-pe.lst |-scan.lst                                                           夜月琉璃                                                                   于2019年1月2日写
教程与文档 3 1 519天前
admin
1501
摘自:https://www.cnbeta.com/articles/deep/204680.htm哗众取宠的结局如果仔细说起PSP为什么会在中国流行,大概可以列出不下一千种理由。可千言万语 说到归齐,没有破解的PSP肯定无法成为影音游戏通吃的装X利器,也不会在街头巷尾地铁公交里成为装机量第一的掌上设备。稍微对PSP熟悉一点的人可能都 知道,PSP在2000型之前的时代有着各种美好,所有的自制软件和破解都畅通无阻。后来SONY的CEO来了一趟中国,看到比日本专卖店规模还大的水货 电玩批发之后就回去痛下决心,彻底整改PSP的主板构架,愣是把这机器的破解漏洞给堵上了。导致PSP3000型苦等半年多才等到一个软件漏洞破解。随后 就是硬件厂商和破解黑客们之间的战斗,你升级固件,我升级自制软件,你来我往不亦乐乎。让时间回拨到一年前,2010年1月最后两 天,SQUARE ENIX的PSP大作《王国之心 梦中诞生》发售,这个使用了新升级文件的游戏让所有拿着PSP等破解的玩家傻了眼。游戏的特殊构造让目前的自制系统无法运行ISO文件。此时最早开发破解 固件M33的大神Dark Alex早已退隐,百分之九十九的玩家都在使用GEN小组的自制系统。所有人都希望能有人出现破解掉这个游戏,让自己能玩到最新最快的PSP新作。实 现这个愿望的并不是国外黑客,而是一名国内的自制软件制作者。在这之前我们用盗版的时候虽然总不忘自夸一句我国人民勤劳勇敢什么的,但其实心里都明白,大 部分破解高手集中在德国和俄罗斯,历代游戏主机的破解都跟国人没有半毛钱关系。只是我们宁愿相信群众的力量无穷大,相信茫茫人海中总会有人站出来解决这个 问题——反正肯定不是摇旗呐喊的自己就行。这个人的ID已经不用复述,在高调开贴声称自己要破解《王国之心 梦中诞生》后,他的帖子点击率和回复都达到了一个前所未有的高度。有的人认为他是哗众取宠,有的人从PSP游戏文件构成分析这件事儿的难度,也有人更直接 地冷嘲热讽……然后在大约一周后,他放出了在游戏中开启金手指软件的截图,游戏破解成功。十天后,他放出了破解傻瓜包。几周后,他放出了可以直接玩更高版本系统下游戏的自制固件。于是所有的质疑和讽刺都化作此起彼伏的赞扬,他的帖子被标红,他的破解让外国玩家也不远万里过来注册,他的名声传遍了世界,他的ID被尊称为大神,就像曾经带给PSP破解最佳思路的Dadk Alex一样。只是很少有人能记得,DA在没有开发M33后续固件后,论坛上那些质疑和嘲讽的声音,甚至有人跑到DA的国外官方论坛上叫骂。那些帖子和言论随着时间沉入系统深处,却没能沉淀出伸手党们平静的心态。历史总是惊人地相似,这位曾经被称为国人骄傲的“大神”,在成功开发出两代自制固件,破解掉许多新游戏之后,也遭遇了相似的一幕。是个玩PSP的都知道《怪物猎人P3》要在2010年的12月1日发售,既是为了纪念《怪物猎人》系列周年庆,也是为了让软件商的年度财报好看一些。对于这款在中国和日本都有着极高人气的游戏,每个粉丝都热切期盼着。在《怪物猎人P3》发售前一周,“大神”发帖表示破解毫无压力。目前自制固件无法运行该游戏,但他可以通过一些改进搞定一切。接下来的精彩,超过的最初所有人的想象。“大神”有一个习惯,必须等到游戏发售一周后公布销量才发布破解。《怪物猎人P3》偷跑数日,各大论坛上憋着等下载的人数概超过了六位,帖子里各种惨嚎和胡言乱语不计其数。不负众望的“大神”用数小时即完成了《怪物猎人P3》的破解,随后宣布可以先给各大汉化组,以便汉化组能够尽快让大家玩到汉化游戏。事实证明,这个世界上最美好的只有愿望。当时得知“大神”已经破解了《怪物猎人3P》的伸手党们本已躁动不安,有人说这搞破解的在装X,有人说他是为了赚取眼球和点击率,当然还有更难听的,总之人性的各种精彩就在这一刻被表现得淋漓尽致。在变了味的网络喧嚣中,这个故事忽然急转直下。“大神”私下给出的破解补丁被自己熟悉的一位论坛版主泄露出去了,于是大部分支持的声音瞬间变成了声讨 ——凭什么你能给他却不给我们玩?更有甚者,人肉出了“大神”的个人信息要发布出去。威胁到了现实生活的“大神”惟有选择退出PSP破解界,从此消失在众人的视线中。在离开网络之前,他发布了还在完善中的新自制固件,并留下了无奈的留言——“看在我让你们玩了这么多新游戏的份上,让我安静的离开吧。”当国外PSP破解黑客得知这位东方同行退出之后,几乎在第一时间发表了遗憾的声明,甚至他们也承认这同道中人才是“有史以来最好的PSP破解黑客”。但这一切已无法挽回,《怪物猎人P3》破解了,而付出这样代价是任何人都始料未及的。淘宝商人继续卖UMD,该玩盗版的继续玩盗版,BBS上的管理员在打扫过论坛之后,关于这件事前前后后的就算是结束了,一切都如未曾发生。可谁也不知道下一个破解PSP新游戏的人在哪里,谁也不知道下一次又有谁要遭受网络冷暴力。一个一个汉化组成立又解散,一次又一次的攻讦和辱骂。有时候那些继续坚持互联网共享精神的人们也忍不住要问一句。大爷们,你们到底想怎样?从来就没温暖过我国玩家的尴尬早已不是一天两天的事了,这样一个不允许电子游戏机成为进口商品的国家里想要玩游戏需要付出很多曲折的代价。面对没有官方中文版和游戏首发必然不会到货的环境,网络共享发布和汉化一直是游戏圈最受关注的两个群体。而我们通常会把那些下载免费游戏的人称为伸手党——这没什么侮辱的意思,就和字面 上的意思一样,大多数玩家付出的无非就是下载的时间和点几下鼠标而已,他们可能未曾想过别人付出什么样的艰辛。最容易受到诟病的当然还是汉化组,游戏的汉化组和影视作品字幕组还不太一样。一般来说一个游戏的汉化过程都漫长又痛苦,除非特别有爱也没什么人会去做这件事。遗憾的是就算这么单纯的工作,一样有人不断表现出各种大爷丰采。“《XXX》的汉化怎么还没开始?汉化组的人都哪去了吗?”“你们说要汉化《XXXX》都已经快四个月了,怎么还没有截图放出!”“垃圾,这汉化也太垃圾了!”“为什么没有人汉化《XX》,赶快来人开坑啊!”…………这也是为什么许多汉化组面对外人询问工作进度时态度不怎么好的主要原因——大家只是在网络上做白工而已,忽然凭空多出这么多视察工作的,谁的心情也不会太好。而且大多数不顾别人感受胡言乱语的人反倒不会认真去体验别人的汉化作品,他们这么做通常只是因为网络上问句话没有成本而已,就像他们下载那些别人放出 的游戏和汉化补丁那样。在这间或里即使有许多真挚的感谢,也被淹没在各种责问之中了。很多人可能一辈子都没怎么被人尊重过,因此也不懂得怎样尊重别人。这样的无理取闹导致大多数汉化组行事低调,哪怕发布新版本汉化补丁也战战兢兢,生怕惹恼了大爷们招来不知道多少叫骂和喷贴。不管是错字、延期还是有了死机 BUG,总免不了要被人喷上一番。以至于后来许多搞汉化的都是做一票就走,搞完项目就宣布解散,免得被人整个团队一起喷。有的人说反正汉化组那么多,喷跑几个心理素质差的,还会有人继续干这个活儿。可这帮人不知道破解领域就那么几个能人,有人跑去DA的论坛喷他,有人在GEN小组的留言板上 刷屏,也有人各种喷国内破解的大神……这些人绝大多数是因为被他们喷的人才玩到的新游戏,他们很容易就忘记了这一点,正如他们希望别人善待自己,但自己完 全不懂如何善待别人。我们的社会怎么了常听人说起说一个道理:那就是你对某个人好,就得一直好下去,只要有一次不够好,以前所做的各种努力可能都会付之东流。说这话的人肯定对人性有相当程度的了解,他也一定经历过什么惨痛的教训。在 很多时候,做破解也好,做软件共享也好,或者搞汉化也好,都面临这样一种窘境。你做得好就是几声赞扬,你做不好了马上质疑谩骂狼烟四起。这就好比许多软件 常年免费,忽然有一天收钱了,我们愤怒又失望地骂了一万句,这才记起来,按照这个世界的规矩其实本来就该收钱。只是我们享受了太多优待,把这优待当成了常 态。其实没有什么事是真正应该的。比如几年前有个台湾人宣布独立汉化《皇家骑士团2》的SFC版,但不外流。唯一要求就是申请汉化补丁的人 答应不要外泄,同时附上自己手中正版《皇家骑士团2》卡带的照片三张。这要求其实不算过分,也比较符合台湾玩家尊重正版的习惯。遗憾的是国内大部分玩家并 没有SFC的卡带,移植版的PS和SS的正版光盘更不用说了。于是觉得无望拿到补丁的玩家纷纷登陆那个人所在的论坛,各种破口大骂,极尽诋毁之能事。当然骂完人家照例是不给补丁的,只是那些留言让彼岸的玩家又低看了内地玩家一次。大 概所有人都能记得那些汉化、字幕还和共享软件上都会标明是以研究和学习为目的,并不是用于商业用途,请于24小时内删除等等。这些字眼本身就已经是阐述互 联网共享的基本态度,一切都应该以发布者的决定为主,因为我们只是些伸手党。可偏偏有人就是想当发布者的主人,冀望于骂几句之后改变别人的意见。没错他们 是改变了,他们让更多的人学会了珍惜生命,远离破解和汉化。其实这种事远远不止发生在游戏圈,笔者一个朋友家境不错,为人又古道热心,开了 一家桌游店。经常有人电脑坏了打电话问他该怎么办,他说如果是小问题你就直接拿来修吧。那边的人就问要多少钱,他说一般情况下不会收钱。然后电话那边的人 往往沉吟片刻,说好吧我再想想就挂了电话。这位朋友就不太明白,免费修电脑什么的为什么会让人那么犹豫。后来经旁人之口才知道,原来很多人已经不相信有素 不相识的人可以免费帮别人忙这种事发生了,在他们看来这个社会上的每一次举手之劳都要明码标价,否则就有更深的阴谋。我想这也是很多人面对 破解、汉化和游戏共享发布等情况时的内心真实写照。对于社会大环境的怀疑,对于他人目的的揣测和出于自身的不成熟造就了众多的网络喷子,在一个不必担心责 任问题的地方指责别人的确是一件爽快的事。更重要的是网络冷暴力所造成的后果往往难以追查,毕竟法不责众,犯错的是一批人而不是一个人。这个责任无法落实 到谁头上去。我们所向往的自由自由宣言里对自由的定义是“在不伤害别人的前提下,你所做 的一切都是正确的”。遗憾的是很少有人在发表自己看法时能够想起这句定义。在网络这个目前最开放的平台上,许多人努力寻求自由,却借着自由之名做着无尽伤 害他人的事。这就像往往我们渴望公平,又希望自己拥有并利用那些不公平的力量;我们渴望尊重,却总在话里话外表现出对他人的不尊重;我们渴望得到而很少付 出,却总在抱怨别人付出的太少……我们所做的一切,并不是自由,只是在扼杀自由所带来的种种可能而已。我们对互联网最大的贡献,不过是我们 每个人都是一个普通用户而已。而我们如果还想让这个世界更繁荣快乐一些,对别人的肯定和宽容是不是更重要呢?文章开头提到的那位在国内被称为“大神”的网 友在《寄生前夜 第三次生日》破解遇到瓶颈后又一次出现,玩家们又一次玩到了最新的免费游戏。经过失去再度拥有,让很多人的改变了自己的言论。这不禁让我想起当Dark Alex宣布自己退出破解界不再研发自制系统的时候,在中文论坛里看到那许多叫嚣着“DA大神已经不行了”,“快滚吧,那么久都不更新系统”的声音。在这 些Dark Alex看不懂的中文帖子里,我小心翼翼地写上“感谢你这么多年来的辛勤工作,让我们玩到了那么多好游戏”这样一句话。今天我在这里又一次说出来,觉得这 样的话每一个字都没有错,并认为这才是对互联网共享精神最大的尊重。
休闲 2 0 533天前
桂公网安备 45010302000666号 桂ICP备14001770-3号
感谢景安网络提供数据空间
本站CDN由七牛云知道创宇提供支持
免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任。
Your IP: 3.231.226.13 , 2020-06-05 17:55:47 , Processed in 2.26562 second(s).
Powered by HadSky 7.3.7
知道创宇云安全