本人非程序员,对破解一窍不通,仅仅发表一下个人观点。
一句话概括,需求决定市场。
Adobe、Autodesk之类的软件,全国各种设计师都在用,一旦研发出破解,卖破解工具就能回本。(最开始零几年刚出破解的时候都是价格不低的,后来传的多了全网都是了,才便宜的,现在某宝卖几块钱的破解版也到处都是,就是赚个信息差的钱,花几块钱买个轻松,免得浪费时间自己找)
还有一些小众的国产工具,注册码机制的,几十块钱,至今没人破解,因为破解了没意义,工具实在太冷门了,找到第二个用户都难,浪费时间精力破解都不如花点小钱自己买了。
入眼就看到一群没玩过破解的玩命YY……
软件破解比开发容易一万倍。
软件最终是要丢给CPU执行的;不管你用了多骚的手法、多牛逼的加密,到了CPU执行这一步,它就是一堆明文指令的组合。
既然是明文指令,那就可以拿来分析——这个事实决定了开放平台上靠计算机指令防盗版完全是痴人说梦。
最简单的,你的程序每次执行前检查是否正版、不是正版弹出个对话框或者直接退出,以为这样就能阻止盗版用户?
太遗憾了。破解者只需搜索对话框文本所在、再找到相关的msgbox调用或者_exit调用或其他相关调用——有无数种办法可以帮助破解者做到这一点,比如全文搜索msgbox相关调用、比如用调试器watch对话框文本相关的访问——你的盗版验证代码就被顺藤摸瓜了。
然后,最简单的,直接把if(正版验证通过)改成if(true)(汇编指令的JNZ改正JZ或JMP),跳过你的拒绝执行逻辑,你的保护就被废了,破解版就搞出来了。
当年起码80%甚至90%以上的盗版软件就是这么搞出来的。
所以你不敢那么憨了,你发现软件不是正版时,先不动声色,做一个标记;若干分钟后再突然发难……
问题是,你“发难”的时候,照样要执行退出之类逻辑;破解者只要抓到这个逻辑,修改exe文件,把相关指令跳过——你又被搞定了。
然后你说“反正我的软件性能需求不高,干脆学病毒,临执行前解码若干字节,执行完继续解码;解码前你看到的exe内容都是无意义的乱码……”
很不幸的,你“喂”给CPU的仍然必须是指令。搞一个虚拟机,把你“喂”给CPU的指令打印出来——解码方法就有了。
现在,盗版软件不需要每次执行都解码,性能是正版的许多倍——你们,都是正版软件的受害者!
当然,软件破解并不像我描述那样轻描淡写;但当年盗版产业最兴隆时,一款软件发布后几小时内被破解才是正常现象。
因为软件保护需要你绞尽脑汁,不能实时反应,也不能不反应;不能只在一处检查,也不能用同一个调用检查;不能立即检查,也不能在某个时间间隔后仅仅检查一次——最好在不同的随机时间/事件后,用不同的方式检查许多次:这些检查还不能太直白不然太容易破解(比如不能单纯检查,而是把检查和功能代码混到一起、敢跳过软件就会在一段时间的运行后出bug);但也不能过于晦涩以至于影响了软件的稳定(正版软件受害者警告!)。
而破解嘛……尽可能找到你藏着的检查逻辑、然后把它们跳过就行了。真用了几天不能用了大不了加上新条件再破解一次(所以如果过去你用过盗版软件的话,应该很熟悉“好好的软件用着用着就坏了”或者“Windows打了个补丁ps不能用了”之类场景)……
你说既然软件没辙了,我们玩硬件吧……
很遗憾。对计算机来说,硬件不过是执行访问外设相关指令后、放置在总线上的字节流。
破解者的PC是完全属于他自己的。他完全可以监控这些东西……
不,他们才不搞这么复杂呢:如果是通过硬件确认授权,他们同样可以绕过确认代码;如果是通过硬件提供关键指令/解密密钥,他们完全可以直接跳过相关代码、直接把解密后的指令/数据附加在内存中……
最“巴拉”的,你去读光盘隐藏区域的隐藏标记?没关系,用户可以用一个更好的、连这些动作都能支持的虚拟光驱(所以过去用户安装Daemon Tools这个虚拟光驱软件,基本上就意味着他是个盗版用户;某些软件甚至发现常用的虚拟光驱软件就拒绝运行——显然,这很容易破解),然后把包含暗记的iso放进去就行!
——当年软件保护最成功的案例我记得是starforce;但这个技术并非不可破解,而是厂商掏钱给全球知名盗版组织,换取他们不破解被这个技术保护的软件(然后还是被散兵游勇们给破了)。
总之,过去,业界用无数真刀真枪的案例证明了:依靠软件本身、软硬件结合抵抗盗版者的破解是徒劳的。你能做到的,仅仅是“不要被人第一时间破解”而已。
想要抵御盗版,法律以及正版意识是唯一有效的途径。
先说结论:
理论上不存在无法破解的软件,但并不是说破解软件比开发容易一万倍,naive,防破解的目的不是要做一个无法破解的软件,而是:
光说不练假把式,52老司机来给各位简略表演几个有代表性的软件破解,当然,要看懂下面的内容,需要一点点C语言的编程基础.
我们先来一个最最简单的软件破解,假设我们写了一个软件,它的注册手段代码如下
#include "stdio.h" #include "string.h" int main() { char Key[32]; printf("请输入注册码:"); gets(Key); if (strcmp(Key,"abc123456")==0) printf("注册成功"); else printf("注册失败"); }
把他编译成exe,运行一下
要破解怎么办呢?超简单的,你把这个程序后缀改成txt然后打开,搜索注册码.然后翻一翻key就找到了
别笑,就算是今天,仍然有一大堆软件采用这种软件保护机制,不过这类软件要不大多不怎么值钱比如xx管理系统,计算器之类的,要不就是软件作者别有用心防君子不防小人.你可能会问了,问题出在那了呢,这类保护机制的问题是,目前大部分的编译器都会将字符串常量直接存储在可执行文件结构中,所以你要是硬编码key,那么上面这种破解方法几乎是屡试不爽甚至不需要什么逆向破解知识就能搞定.
那么,让我们进入防破解V2.0时代,为了与时俱进,我们稍微把上面的代码改一下
#include "stdio.h" #include "string.h" #include "windows.h" #include "math.h" int main() { char iKey[32]; char Key[32]; char ID[32]; int iID=0xabc1d3f; sprintf(Key,"%x",iID*8+123456); printf("你的机器码是%x
",iID); printf("请输入注册码:"); gets(iKey); if (strcmp(Key,iKey)==0) MessageBoxA(0,"注册成功","",MB_OK); else MessageBoxA(0,"注册失败","",MB_OK); }
现在"TXT"破解法已经不顶用了,你看,key找不到了
怎么样,这种保护手段是不是熟悉的味道熟悉的配方,这个机器码可以从网卡MAC,CPU型号,内存大小等等等等去生成,当然,key的算法也可以拉上MD5,SHA等等等等手段来弄而不是简简单单的乘一个8再加上123456,总之从机器码到注册码的算法你能玩出花.
但,这又有什么卵用呢,打开ollydbg,对MessageBoxA下断点(也就是弹窗的函数)
然后输入一个错误的注册码,命中断点,很快,我们来到了判断注册码是否正确的逻辑处理代码
你猜猜,要是我们把这个判断注册码是否正确的代码给它删了)(nop指令填充)会怎么样
你会发现,握草,不管我输入什么,都是注册成功
那么问题出在哪了呢,你发现,万恶之源都始于那个MessageBox函数,正是这个函数,让我们顺藤摸瓜找到了注册码判断代码,时至今日,仍然有非常非常大的一部分软件使用着这个二三十年前就在用的保护手段,每年死于MessageBox被破解的软件,围起来可以绕地球三圈.也就是这个保护机制,成就了所谓软件发布后十分钟就被破解的悲惨结局.
这个时候,你痛定思痛,mmp,有内鬼,既然MessageBox不好用,那我不用就是了,于是你把代码改成下面这样
#include "stdio.h" #include "string.h" #include "windows.h" #include "math.h" int main() { char iKey[32]; char Key[32]; char ID[32]; int iID=0xabc1d3f; sprintf(Key,"%x",iID*8+123456); printf("你的机器码是%x
",iID); printf("请输入注册码:"); gets(iKey); if (strcmp(Key,iKey)==0) printf("注册成功"); else exit(0); }
你看,啧.只要你注册码没输对,我直接把软件退出(或者跳到别的地方),看你怎么办
可惜,内鬼年年有,"注册成功"几个字还是出卖了你,打开ollydbg,查找字符串参考,然后双击
哦豁,完蛋,换汤不换药,还是给逮住了.
你察觉到这样一个地方判断注册码实在不靠谱,所以,你改变了策略,把检查注册码的代码复制了n遍,或者逐字符检查注册码的准确性,还有人将注册成功等字样进行加密或混淆,等到要用的时候再取出来
#include "stdio.h" #include "string.h" #include "windows.h" #include "math.h" int main() { char iKey[32]; char Key[32]; char ID[32]; int iID=0xabc1d3f; sprintf(Key,"%x",iID*8+123456); printf("你的机器码是%x
",iID); printf("请输入注册码:"); gets(iKey); if (strcmp(Key,iKey)==0) printf("注册成功"); else exit(0); if (strcmp(Key,iKey)==0) printf("注册成功"); else exit(0); if (strcmp(Key,iKey)==0) printf("注册成功"); else exit(0); if (strcmp(Key,iKey)==0) printf("注册成功"); else exit(0); if (strcmp(Key,iKey)==0) printf("注册成功"); else exit(0); if (strcmp(Key,iKey)==0) printf("注册成功"); else exit(0); if (strcmp(Key,iKey)==0) printf("注册成功"); else exit(0); if (strcmp(Key,iKey)==0) printf("注册成功"); else exit(0); }
你放心,不管你复制多少次,要找出来都是时间问题,吃枣是会被破解的.同时只要你要用到明文字符串你迟早还是要解密的,这种手段类似于加upx压缩壳,只需要等待数据解压完成,所有的东西又都是明文的了。因此比较聪明的做法是,要用时解密,用完后马上把明文抹掉,这样说不定能拖延更长的时间。但这仍然也是时间问题。
你开始发现,与其揪出内鬼,不如主动出击,也就是我们著名的与其解决问题不如解决提出问题的人,终于,你开始对调试器下手了,然后你成功进化到防破解V2.5时代.
这个时候,不得不介绍一个老掉牙的但非常有名的函数
IsDebugPresent
你可能有点懵,这个函数是干啥子用的?,简单来说,当我们破解一个程序的时候,大部分情况下我们会打开一个叫调试器的东西来对软件进行反编译分析,诶,重点就在这,IsDebugPresent这个函数,就能检测我们的程序有没有被一个调试器附加,你想啊,正常情况我们用软件谁会吃饱撑着附加一个调试器来用,你要是用调试器附加我,你肯定就是想干坏事.
于是,你开始把代码写成这样:
#include "stdio.h" #include "string.h" #include "windows.h" #include "math.h" int main() { char iKey[32]; char Key[32]; char ID[32]; int iID=0xabc1d3f; if (IsDebuggerPresent()) { MessageBoxA(NULL,"小样,就你还破解我的程序,回家喝奶去吧","",MB_OK); return 0; } sprintf(Key,"%x",iID*8+123456); printf("你的机器码是%x
",iID); printf("请输入注册码:"); gets(iKey); if (strcmp(Key,iKey)==0) printf("注册成功"); else exit(0); }
于是,当下次再ollydbg加载调试你的程序的时候,就会出现下面的情景
曾经很长一段时间(包括现在),很多软件或加密壳都会检查是否有调试器正在调试自己,比如tls段会在加载时被执行,如果检查到自己正在被人调试破解,就会设置一个tag让程序跑到没啥用的地方去或者直接退出重新,也有利用变形的PE头让调试器无法加载,总之手段很多.
可惜这还是没什么卵用,比如IsDebugPresent可以通过修改FS寄存器的标志位来让它彻底哑火,同样的手段包括但不限于检查int 3软中断,Raw Call,Query PEB,检查Debug Privilege和父进程等等等等,都有绕过的方式.
暗桩嘛,只要你插,一个一个拔总是拔的完的
好了,还有啥法子不,放心道高一尺魔高一丈,现在我们来到了现在最流行的,防破解V3.0 VMP时代,
先澄清一下,这里的VMP并不是VMP壳,它全程叫Virtual Machine Protection,简单来说,为啥我们破解软件那么轻车熟路,还不是因为x86 x64 arm的那堆汇编指令集我们太熟悉了呗.要是我们自己发明一套指令集,然后用这个指令集写程序并运行在我们自己的虚拟机上,那么,破解者一进来,看到的不就是一脸懵逼了么
可惜的是,VM的运行机制决定了它可能造成几十倍乃至几百倍的性能损失,所以,VMP必须用于保护那种关键且不是性能瓶颈的代码,否者你的软件跑起来就会像
如果你想了解VM机运行机制,诶,笔者刚好也做了个
那么,VMP保护机制是完美的么,当然不是,VMP说白了,也只能做到延长分析时间,你要是把VMP做的足够复杂,足够让一个Cracker醉生梦死了,但是如果这个时间足够久,你的软件足够的值钱让人有欲望来破解, 他们仍然可以充分地分析你VM机的运行机制,当你的VM机运行机制被摸清了,软件就离沦陷不远了.
不过你可以放心,分析VM机执行机理,可比自己写VM机要头疼多了,毕竟一个是你需要通过代码来揣测别人的思路,而另一个本身是自己的思路转为代码,因此基于这点可以说:
破解软件比制作软件简单,在很多情况下,不存在的!
你可能会问了,为什么现在市面上那么多软件,那么多游戏,购买了那么多听起来那么牛逼的保护软件,结果还是被破解了.而且刚发出来一天就被破解了.
其实很大的问题就出在这个商业保护软件(比如保护壳)上,因为这类保护壳大多都会被卖给一大票的软件开发商,有一句话叫树大招风,就像现在流行的VMP保护机制,之所以能保护,是因为其运行机理破解者不明确,如果你这个软件就给自己用,而且你这软件还不怎么值钱,除非大佬空虚寂寞冷,不然谁会有那闲工夫去分析你的虚拟机是怎么跑的,但商业保护壳不同,不论其采用什么样的保护机制,只要分析过一遍搞清楚了,几乎所有使用这类保护机制的软件都会沦陷,而且在灰色产业上.这种破解甚至还颇有利可图,只要这个保护机制不更新,一次投入,长期回报.于是只有说在第一次分析时会花上很长的时间,之后就都只是玩套路了.
因此,购买商业保护壳,其实其保护效果并没有想象中的那么强,很可能在灰色产业中形同虚设,甚至一个具有反逆向基础的码农自己写的说不定还更有效果.当然一个软件是被破解概率高不高,仍然是我之前提到的那句话:防破解不是让软件无法破解,而是让破解软件的成本远大于购买软件的成本
毕竟你说你一个软件拿来开源都没人爱用,你还整天琢磨着怎么才不会被破解,寒掺不老铁.
那么你会开始问了,有没有更给力点的防破解技术?好像之前说的说来说去,无非就是拖延时间,诶,这个我们要摆正心态,不论是加密还是破解,其实说白了最终就是拖延时间,你看那些加密算法,依据其数学理论,如果要破解,它的计算量就算你把全世界的计算机加起来一块算,也够你算三个世界末日了.
不过别担心,更给力的方法还是有的,你想啊,为什么我们之前说了那么多软件都被破解了,最最关键的一个原因,是我们能搞到代码,即使这个代码已经是经过编译后的一堆汇编指令,但只要我们有这堆代码,迟早我们还是能搞懂这个程序是怎么回事的,然后我们就可以对症下药干坏事.
这就像给你有一包面粉,而程序就是一个面包机,你把面粉塞进面包机做出了面包,有天你好奇啊,这面包机咋整咋整就出来一块面包了呢,你就动手把面包机拆了,然后你就知道面包机是怎么回事了.
所以有没有办法不让用户知道我们的代码是什么样的呢,就像你把面粉交给了面包师傅做面包,这个面包是怎么做的,你就只能指望看面包师傅有没有这个心情告诉你了.
为此,有请早期一个相当流行且普遍的游戏防破解工具(物理)
你现在可能表情是一脸问号,但我没和你开玩笑,在2000年时代,大部分的游戏运行在光盘CD中,但盗版也容易啊,把光盘里的数据一复制下来,然后就可以复制出一万张盗版光碟,所以游戏厂商们就想办法,想来想去就想到了榔头
其操作方法很简单,拿榔头和钉子,在光盘上钉几条刮痕出来,造成人工的坏道,然后再将数据烧录到正确的扇区中,这样下来虽然程序还是可以正确运行,但是当光头读盘读到这个坏道的时候,就会读不过去,于是你会发现打开光盘后,没有关键的文件,这样你就没办法将游戏或者说程序拷贝出来了,同时还会对坏道的位置做一个标记,游戏运行时也会检查这个标记,那么想要盗版你就也得拿起榔头在光盘同样的位置上砸出同样的刮痕出来,当然,这几乎是不可能的.
当年这个技术当年又叫防盗环技术,但不管它的名字叫的多高大上,本质上就和榔头钉钉子如出一辙是同样的东西,可惜虚拟光驱出现后,同样有办法复刻光盘的一切数据(包括坏道),所以,这个技术拿到今天来看并没有什么卵用.不过这仍然给了我们足够的启发.
现在让我们进入防破解V3.x时代,之所以不叫V4.0是因为这类技术很早就有并且比VMP保护流行的时间还早的多,而且它可能是最近接理论上不可破解的防破解手段.
我们先聊的是加密狗或者又叫Ukey保护,就是运行软件你需要插入一个U盘一样的东西到电脑上,实际上这个Ukey是一个微型电脑,软件的一些关键的算法和代码,都在这个UKey的芯片里,当我们PC上的软件运行后,当我们需要执行这类关键算法时,我们会向这个Ukey传递数据,然后UKey将结果计算出来,返回给PC的软件上,这样就避免了用户直接能够逆向取得关键的算法代码,破解也就无从谈起了.这也就是为什么到了今天,Ukey保护仍然非常的流行.
可惜,UKey保护仍然有诸多的限制,首先就是带着一个Ukey贼麻烦,万一UKey丢了补办是一个麻烦事,运行软件插Ukey也是个神烦的事情,同时,UKey的性能决定了它可能不能执行一些过于消耗性能和内存空间的代码,数据交互也因带宽和通讯延迟会造成性能损失,所以它和VMP保护机制一样,同样不是一个省油的灯,同时开发人员的水平不到位,该保护的代码没保护,保护来没啥用的代码塞了一堆,也会给Cracker带来机会,而且只要你的软件够值钱,你是不是太瞧不起我华强北了
把Ukey拆开来,使用某种"药水"剥开外层找到内部的芯片并接上已经熔断的"读引脚"(有些芯片连这步都省了,直接热风枪一吹接板读ROM) 然后再把芯片的代码给读出来
于是,UKey保护也宣布沦陷.
你发现,只要是把实体的东西交到用户的手上,迟早会出问题,所以,这个Ukey保护现在大部分情况下变成了带数字证书的网络验证模式,这类的关键代码从Ukey转移到了服务器上,数据交互通过网络来做.其实这种保护机制和Ukey保护原理是一样的并没有什么本质的区别,但同样处于网络带宽也延迟的考虑,同样具有一定的性能损失和设计缺陷.
所以你指望一堆什么x盾,x宝一键能一劳永逸一键保护程序,程序必须经过专业码农而不是彩笔专门的设计才能起到其应有的保护效果
但现实情况是,处于用户离线运行和性能延迟瓶颈的考虑,这种网络保护设计的往往都有很大的缺陷,因此,并不是说这东西不好,而是理想很丰满现实很骨干,实在无能为力啊.
当然,代码保护的手段很多且花样玩法也很多,本文只是初略介绍几个比较有代表性的破解和反破解手段.如有兴趣
想和笔者调侃?想了解一个游戏引擎码农如何同挂比斗智斗勇?想听更多的故事?看不懂上面的C语言代码?看下面!
这个问题的热度应该过了,且容我将此地当个树洞。
自我简介:男性,猴年出生,浙江小县城出身,颜值低身材烂情商渣家境差,省内某211冷门劝退专业本硕毕业,暂时在杭工作,每月到手收入大概在杭州市最低收入水平。
现在的状态,总的来说就是——活着没啥意思,又不敢一死了之。
本科的时候浑浑噩噩,工作后又一时脑残辞职考研,一晃眼青春不再,想要再修996的福报,似乎也没机会了。如今不奢望出人头地,只求在我不想死的时候能够苟且度日。
从前觉得妻儿是累赘,幻想做一辈子单身贵族,年岁既长,愈发感到养老的压力,然而自知之明,找不到合适的人愿意一起搭伙过日子。
家中长辈多因癌症去世,估计是遗传使然,想来自家父母和自己也逃不过这一劫,每念至此,倍感压力。
每个月发薪水的日子是最绝望的日子,看着自己的工资,再看看杭州的房价,想来此生换间像样点的房子是无望了——也想过卖房回乡,然而回了老家,又能做什么呢。
小时候勉强也算是小县城学霸一枚,以为自己成绩比别人好,将来便能比别人过得好,然而现实让人清醒。
关于新冠肺炎的研究,先发布在美国而不是中国。
我是一名基层派出所民警。
可以说当今中国警察普遍羡慕美国警察可以采取暴力手段绝对的镇压不法分子。
但是,不得不说,这次这位美国警察,太过分了,不仅是过分,而且我的理解是那已经构成了犯罪行为。那黑人已经制服了就可以正常上拷带走了,没必要一直压着脖子压那么长时间。没能置身其中不知现场那美国警察的所思所想,反正我个人挺不理解他为啥那样干的。
只能说无论什么地方,无论什么行业,只要是人的社会,都有像样的也有操蛋的吧。
_________此处为分割线 _________
以下为统一答复评论中有些人质疑的我所讲的羡慕二字。
能够出现这种质疑在我料想之中,因为中国警察也有过过分的时代,据我所知就是在七十八十九十年代,就如同地痞流氓,看谁不顺眼就能打谁对老百姓而言没王法可讲,那时候的警察说好听点可以说是威风凛凛说难听点儿是横行霸道。
但我想表明的是,时过境迁,现在的中国警察无论是受舆论约束还是因为法治社会建设制度规范都已经变得逐步文明与规范起来,起码我认为从我们现在开始从公安司法院校毕业参加公务员考试考进来的新一代警察已经具备新的面目,当然不可否认的是在这个行业内目前仍然存有历史的顽疾,仍然存在着臭虫,但我已经讲过无论什么行业都有操蛋的吧,这是个人问题,不是群体问题。相比之下,拍拍良心看,现在的整个警察队伍比照曾经确实过分的年代是不是已经是天地之别,问问曾经真正挨过曾经年代老警察欺负的中老年人就知道了。
为何会说起羡慕,因为警察每天面对的人群,大多是三教九流之辈,没有武力加身,很多事情在处理上警察显得软弱无能,说白了,好人谁没事儿上派出所转悠啊都忙着自己的生活呢,警察打人这句话,我们常常听到,但是但凡有点脑袋的人都能想明白,警察会闲着没事儿干把那在家里消停待着的遵纪守法的人抓起来暴揍一顿吗?
以上言辞不免更会有人质疑,请允许我解释,武力,当然不可滥用,我所说的羡慕不是羡慕美国警察的随意滥用武力,而是在合法范围内准许在对方不听从警察指令时动用武力,现在确实有人民警察法赋予了相关权力,但实践中现在的中国警察并不能或者说不敢执行人民警察法里的所有权力。拿防疫工作举例,卡口的工作人员在让出入的人员扫码登记时,就会有不愿意配合的人,然而这些不愿意配合的人可会知道工作人员的所做所为是为了整个社区的稳定安全,因为这整个社区包括了这名不愿意配合的人啊,在这个时候是否应当对其进行武力控制来保障其他居民的安全呢。同理,警察盘查也好,调查也好,总会有那些不愿意配合的人,自我感觉良好认为自己没问题所以警察不必要对其进行盘查所以就不配合,而警察当看到对方不配合时会以什么视角审视,难道要说谢谢您的不配合吗,万一这不愿配合的人真背着案子呢,那便是对更多的人民群众的不负责任。因此,我要说,民众的素质如果真正达到了人人互相敬重路不拾遗夜不闭户的文明程度,要求警察绝对文明不要有暴力举动,一点问题没有,一味强调了警察不该暴力执法而分毫不过问被执法对象自身是否存在问题,是不是看问题的角度些微的片面了些。
请注意,我说羡慕里的那句话尾巴实际已经表明了,羡慕的是暴力手段对不法分子的镇压,可不是对遵纪守法的百姓也要肆意妄为。例如像给群众办个身份证居住证之类的业务,警察当然应该热心服务。但当面对泼皮无赖时,还要笑脸相迎,得来的只有蹬鼻子上脸,警察都不怕了,您们认为这些无赖还有谁管得了。
列位存有异议的同志们,谢谢您们的教诲。言辞中犀利的同志们,谢谢您们的敦促。
让我知道当警察,需要吾日三省吾身。
还想要质疑甚或是骂的您们,若是能让您舒服,骂两句无妨。我不算您辱骂警察。不过是,道不同不相为谋罢了吧。
_____分割线
2020年6月5日22:53 出警在路上
9月21日,美国总统拜登在和英国首相约翰逊的会面中,突然毫无预兆的要求记者清场,而在那段现场的视频中,似乎有一记者问了一句:“Did he shit?”(“他是不是拉了?”),而旁边的另一位记者回道:"I have no idea,hope the microphone got it。"(“我也不知道,但愿麦克录到了。”)
这段视频流出之后,全世界的舆论场都炸了锅,人们纷纷怀疑,已经是80高龄的拜登,是否在这样严肃的场合,一个不小心,拉在了裤子里,所以才会突然要求清场,而现场的记者是闻到了味道或者听到了声音,才会有此一问。
这个看似荒谬的猜测,却意外的流传极广,以至于向来标榜言论自由的外网都开始大量封杀此类帖文,而美国官方也很快出来辟谣说清场跟总统拜登的身体情况无关,只是出于政治和外交因素,两位领导人必须密谈。
但网民们可不管这么多,美国政府越是删帖和澄清,他们就越是对拜登的“脱粪”深信不疑,传言越传越是有板有眼,之前俄罗斯总统普京的那句“祝他身体健康”也被拉出来反复分析,进一步佐证了拜登的“失禁症状”。
这个曾经代表着“战无不胜,众望所归”的超级大国和世界第一强国,居然以如此不体面的方式迎来了舆论的毁灭性打击,这让许多美国的敌人和反对者都大为诧异。
然而,冷静下来思考,我们会发现,这其中疑点颇多,因为在那段广为流传的视频中,第一位记者在提出疑似脱粪的疑问之后,另一位记者给她的回复是“我希望麦克风录了下来”,如果真的是拉裤子这种事情,被麦克风录下来的可能性实在太小,还不如说希望摄像头拍到了。
即便退一万步,认定确实是拜登没有控制住大小便,但其实他作为一个80岁的老人,出现这种情况也并不稀奇,衰老并不是罪恶,也不至于为此如此残酷的嘲笑一位老人。
因此,拜登如今的被群嘲,可以说只是美国国力衰退的一个缩影,无论拜登是否真的大小便失禁,但他作为美国总统,领导着这个衰退的美国一路火花带闪电的跌下了神坛,曾经的荣耀必然会一道一道全部化作孽力反馈回他的身上。
简而言之就是,如果美国今日没有从阿富汗撤军,新冠也已经完全被控制,那么拜登就是拉的到处都是,也依然会有人跪舔说他这就像廉颇“一饭三遗矢”,是有大将之风,可当美国撤出阿富汗,新冠病死七十万之后,哪怕他这位总统日日正襟危坐,我们也总会怀疑,他屁股底下,是不是粘着什么不雅的东西。
这,就是今日的世界,就是美国从“谁也打不过”到“谁也打不过”之后,所必须要面对的残酷现实啊。