补交5800元,知名“开源软件”发布商业授权提醒公告

文 | 局长
出品 | OSC开源社区(ID:oschina2013)
近日,织梦CMS (DedeCMS) 发布了关于商业使用授权的通告。
补交5800元,知名“开源软件”发布商业授权提醒公告
授权详情: http://www.desdev.cn/service-dedecms.html
通告称:根据 DedeCMS 授权协议,除个人非营利网站外,均需购买 DedeCMS 商业使用授权,授权费为人民币 5800 元。并提醒所有 DedeCMS 的使用者,如果尚未获得授权,需于 2021 年 10 月 25 日 24 时前购买相关特权。
补交5800元,知名“开源软件”发布商业授权提醒公告
通告原文:http://www.dedecms.com/post/20210926.html
还有消息称:目前官方已经通过 AI 取证机器完成了全网的材料取证,并且组建了一个庞大的律师团队。

补交5800元,知名“开源软件”发布商业授权提醒公告

AI取证机器
据介绍,织梦内容管理系统(DedeCms)是国内该领域最大的免费开源软件,以简单、实用、开源而闻名(注:织梦 CMS 实际上采用的协议并不是 OSI 认证的开源协议,所以它不是标准意义上的“开源软件”),经历多年的发展,织梦CMS 成了国内无数站长必备的一款建站源码。
你了解/平时都用哪些开源的内容管理系统呢?

— EOF —

转自:https://mp.weixin.qq.com/s/UFfrgczVpiBSi1J6KQvNVQ

说点干货:我的投资架构

今天市场稍微有所反抽,但目前而言还没触底,大盘空间看3520-3500区间,或者横盘震荡4个交易日左右。这是在没有消息刺激的情况下,有消息刺激就要看刺激程度。大致就是再过过3-4天应该差不多。

最近后台很多人留言说老师你预测这么准,能不能透露一些你学过的东西,指点一下。既然大家想学,又加上马上有国庆7天长假,正好可以学习,今晚就来说一下我的投资架构,以便大家也能系统地搭建自己的投资架构。

以往,相信大家都有去看过一些关于技术分析或者基本分析的书籍或者文章,更痴迷的可能还报过相关的炒股课程。这个过程中我们就会面临以下问题:

1、东看西看,东拼西凑,学的东西不完整,不系统,有时候管用,有时候不管用;

2、别人教你的东西不完全正确,还有教你的人是否真的懂,或者有没有真正告诉你。

授人以鱼不如授人以渔,今晚就来说一下我的投资框架:

相信这里也有金融、经济专业相关或者在私募或者投资机构工作的人,你们一定会遇到过这样的困惑:“在书本上学的金融和经济理论来到股市大部分会失灵”!即使后面去专门系统地学习大师级的价值投资理论,最后还是一筹莫展。

这是为什么呢?

因为知识门槛的原因,有点像我们古代的宗派,自家宗派的真材实料一般都不外传。那么,近代经济学或者金融学起源于西方,西方就对全世界玩了这么一手,他们给出来的经济学理论或者金融理论,基本不是完整的,甚至是有误导性的。

而且可以告诉大家,截止目前为止,在经济学领域,还没有具备科学性的经济学或金融理论,西方的理论基本是经验性总结。关于这一点,大家可以去看缠中说禅经济学,或者陈平的理论。

在一开始的时候,我也在这里头瞎转悠了很久才发现现在学校或者很多人传播的理论是有问题的。需要说明的是,这些理论在某些方面是适用的,只是不具备全方位涵盖性。

因此大家学习东西的时候要注意自己看的东西是否存在问题。上面说的,是希望大家不要走弯路。

在之前的文章曾经提及过一些框架的东西,首先是从宏观着手,然后再到市场,再到板块,才到个股,最后到买卖点。

这里说的宏观,其实对于多数人而言,没有必要深究,因为你们不是搞研究的,只需知道就行,因为宏观的东西一般两三年甚至十几年才会有明显的变化。

现在的宏观就是中美博弈,为什么会出现中美博弈呢?

直接原因是中国经济不断发展危及美国的霸主地位。再深一层原因就是人口级别更迭,目前处于人口序列中2亿5千万主导向12亿5千万主导过渡的阶段。宏观经济背景就是自1929年开启的信用经济拐点,目前就处于这个90年经济周期下行中,因为90年接近100年,管理层平时说的“百年未有之大变局”就是这么来的,就是从这个经济周期来的。

在这个交接期过了之后,中国经济将会一马平川,飞速发展,重回世界之巅,这些大家应该能够预感到。

现在的关键就在于要区分清楚中美博弈对市场的影响,因为目前还没分胜负,因此中美交锋会不间断出现,这就是未来1年的潜在投资风险。

中美博弈分胜负的标志是什么?美国金融市场崩溃。关于这个问题,在9月初的文章已经透露给大家了。一旦中美明显区分胜负了,国际资本将会快速逃离美国,我们也会打开对外的通道吸收美国出来的国际资本,这就是大破大立,先风险后大机会。

关于宏观经济周期,大家可以去看一下《涛动周期论》,这是前中信建投首席经济学家周金涛生前的演讲实录。他的理论相对来说通俗易懂也实用,不像现在的经济学家,开口就是一堆数据,说完了你还不知道他说了什么。这本书对生规划也很有帮助。

说点干货:我的投资架构

宏观的问题大概说了,有时间后面再深入一点,为了文章不那么长,暂时不深入讲解。下面就是大盘的问题,其实大盘主要跟政治经济相关,目前的政治博弈还是上面的中美博弈。经济问题还是这个90年经济周期下行趋势。

但有一点需要注意,我们炒股不是搞实业,炒股炒的是预期,不是实际情况,当然实际情况跟股市也有相关联,但更重要的是预期。因此,一般股市启动会先于经济启动。但前提是经济好转的预期要形成,就目前而言,经济还处于下行,今天PMI已经跌破50枯荣线了。

对于PMI跌破枯荣线,我们要有易经的思维,就是不要只想一边,要正反两面都要思考。很显然,PMI跌破枯荣线,说明经济不行。反过来,国家一直说维稳,那现在经济下滑,那是不是要维稳一下呢?

怎么维稳?放流动性。所以,这就可以知道,在至少中期经济是下行的,因此要小心,控制好仓位,但短期有可能释放流动性,那这就是一个短线的机会。

至于怎么捕捉这个流动性的机会,这就要结合到技术面。一般来说,如果处于下行趋势,没有出现下跌背驰的情况下,最好不要进场去博,因为还有可能下跌,等到你深套了再释放流动性,那就没有意义了。

只有在出现下跌背驰的情况下,这个时候行情要么止跌盘整,要么反弹修复背驰,这就没有下跌的风险,最多就是不涨,但不会亏钱,这就是战术问题。

看完大盘,那就看行业,在中国,行业主要由两方面主导,一是本身行业迎来利好,而是政策扶持。对于行业而言,其实也算是中期的,因为行业的东西不是三两天就会变的,那些隔三差五出来一个消息的,纯属是概念炒作,跟行业发展关系不是太大,只是借个名头来炒。

有时候觉得那些整天倡导价值投资的人天天出来说股票也是觉得奇怪。

现在行业方面,很显然就是涨价题材,电力供应不足等;国家政策方面,碳中和以及乡村振兴是主要方向。等美股崩盘了,就是金融方向。

我们知道了行业的情况,那就落实到个股。一般来说都是跟龙头,龙头有分2种,一是行业老大,这个就看市值,谁的市值大那很显然行业地位就大。第二是看概念,因为短期炒概念的一般比较猛。

如果有2个或者多个龙头呢,怎么选?这时就要考虑另一个因素:比价关系。

就是近期涨幅多还是少。关于这个比价关系,除了板块横向比较,其实还可以纵向比较。比如牛市里,金融股涨了50%了,科技股还没怎么动,那么从比价关系看,科技股的潜在空间显然比金融股要大。

宏观、大盘、板块、个股都比完了,最后筛选出来的股票是不是就可以买了?

还不行!

凡事关系到买和卖都要落实到技术面,这个时候就要从技术面去捕捉好的买卖点。这有点像追女孩,追女孩谈恋爱这事应该绝大多数人都有经验。你从一堆人里选出来目标了,是不是还要找合适的时机再下手,如果信任感都没建立,你就跟人家表白,成功的概率就很低。

股票跟谈恋爱有相似的地方,我们要通过技术面去找到股票适合介入的位置。那么怎么看呢?

这里从缠论的角度来给大家简单说一下三类买卖点:

第一类买点:经过下跌背驰产生,背驰的判断可以根据两段同向趋势对应的MACD红柱子面积大小做比对。

第二类买点:在第一类买点后进入上涨,在次级别回落止跌的位置就是第二类买点,一般比第一类买点高,但也有极少数比第一类买点低的情况。

第三类买点:突破中枢后,次级别回踩没有回到中枢的位置。

说点干货:我的投资架构

卖点就跟买点反过来。举例:

如上图 ,黄色是上涨趋势,绿色是下跌趋势。对比是否出现背驰,那就可以看进入和逃离中枢的前后两端力度比较,如:c段与b段对应的MAC柱子面积,上涨趋势对比看红柱子面积,下跌趋势对比看绿柱子面积。如果c段对应的红柱子面积比b段小,那后面就要被拉回到前面的中枢之内,这就可以提前预知拉回的空间大小。

详细的讲解,大家有空可以去看一下《缠论》(教你炒股票108课),下面这本书,千万别买套装,因为除了这一本,其他没什么用。《缠论》有多牛逼,大家去百度一下作者“缠中说禅”看看就知道。

说点干货:我的投资架构

宏观——大盘——板块——个股——买点  都解决了,那还有涨幅的问题,同样的买点,为什么有的一下子爆拉30%-40%甚至七八十个点,而有的只是涨七八个点十来个点呢?

这就涉及到周期共振的问题,要找到多周期共振的位置才能捕捉到更加的买点。关于周期共振,过几天再说。

转自:https://mp.weixin.qq.com/s/vPIAkqMNjvCT4Mg-5q12Kw

K12业务:死于限时、限价

导语

近日,国家印发对学科类培训机构收费监管通知,对培训机构的收费、教师工资、营销费用方面都做出明确限制。学科类培训机构的公益性质愈加凸显,年薪百万名师、营销大战、收费乱象终成历史。在此情况下,教培机构将面临何种危机?盈利模式将如何重塑?

1

政府指导定价步入正轨

教培行业利润全无

9月24日起至10月23日,《北京市定价目录》(修订征求意见稿)公开向社会征求意见,其中义务教育阶段学科类校外培训收费列入目录,实行政府指导价,此举意味着教培行业限价正式提上日程。

此前,国家发展改革委、教育部、市场监管总局发布的《关于加强义务教育阶段学科类校外培训收费监管的通知》规定,义务教育阶段线上和线下学科类校外培训收费属于非营利性机构收费,依法实行政府指导价管理,由政府制定基准收费标准和浮动幅度,并按程序纳入地方定价目录。

 

北京作为首个即将出台义务教育阶段学科类校外培训收费标准的地区,其示范和借鉴意义重大,预计各省份和城市将陆续出台相应的收费标准。虽然,最后的收费标准未出,教培行业从业者对剩余的利润空间却不抱多大希望。

9月14日,浙江金华市婺城区英华时代教育培训有限公司成为浙江首家完成“营转非”登记的公司。“营转非”如火如荼进行,为教培行业学科类培训打上了“公益性”的烙印。

按照《民法典》的相关规定,“非营利”指不以向投资人分配利润为目的。在此背景下出台的收费监管标准精准整治培行业“名师百万薪酬”“营销大战”“价格乱象”等顽瘴痼疾。

意见指出,义务教育阶段,各地制定价格浮动幅度,上浮不得超过10%,下浮可不限,具体收费标准将参考线上、线下以及不同班型的课程时长来制定。其余两项要求为,培训机构老师平均工资不得明显高于公办教师;宣传费用不得超过销售收入的3%。

收回教培行业价格自定权意味着什么?有人说“2021年,教培行业死于限价。”

网传学科类校外培训收费标准上限为:一线和二线城市,小学生每小时30元,初中生每小时40元;三线及以下城市(含县城),小学生为每小时20元,初中生每小时30元。

以北京某机构的线下课程为例,小学阶段33课时、13课次课程收费为3360元,平均算下来为258元/课次,一次课2.5小时,每小时收费为103.2元。初中阶段36课时、24课次课程收费为3780元,折算下来157.5元/课次,一次课2小时,每小时收费为78.75元。

以广州某机构线下课程为例,小学低年级收费标准为225元/次课,一次课2个小时,折算下来每小时112.5元;初中收费标准为240元/次课,一次课2.5小时,折算下来每小时96元。

按10%上浮价格收费,小学生每小时33元,初中生每小时44元。目前一线城市市场主流学科类机构课程收费标准基本在100元/小时以上或附近区间浮动,收费价格是网传定价标准的2、3倍都不止。

线上大班直播课程价格收费较低一些,某网校共计48课时的小学在线课程收费为1760元,半个小时为1课时,每次上三个课时,折算下来为73元/小时;48课时的初中在线课程收费为1920元,折算下来为80元/小时。

之前的文章中,鲸媒体认为收费标准在60元/小时,线上大班课玩家通过节衣缩食削减开支,可能尚存一丝生存空间。但若真如传闻所言,以最高33元、44元每小时来收费,教培机构利润空间全无,倒闭和撤销K12业务是早晚的结局。

2

“限价”压垮教培行业

新商业模式在何方?

限价前,教培行业普遍认为“时间”是最大的敌人。

 

教育部规定义务阶段的辅导班不得在休息日、节假日和寒暑假展开学科培训,周一到周五的补课时间不能超过20:30。

另一项数据显示,截至9月22日,全国有7743.1万名学生参加了课后服务,学生参加率85%,其中有71.2%的学生每周5天全程参加。也就是说,大部分的学生都会在学校待到18:00及以后,教育机构的线上和线下课程能上课的区间为18:00/18:30-20:30,最长上课时长为2.5小时。

于是涨价成为顺理成章的事情,以提价来填补流失的时间。有家长反映,当地被列入白名单的机构在一段时期内有小幅的涨价。

如今,“限价”成为压垮K12业务的最后一根稻草,也戳破了教育公司希冀靠涨价来赚取时间与利润的幻想。

摆在教培机构面前的现实:义务阶段的课程收费降至毫无利润可言的价格、租金不降反增、政策对老师资质的要求和用工成本不断攀升、资金监管愈加严格……“双减”的下半场,每天都在重复上演“跑路”“破产”,一众企业面临“退市”的风险。

天眼查数据显示,截至8月份,2021年教培相关企业注销或吊销的数量超14万家,较2020年同期相比,增长约34.59%。

 

K12教育公司四季教育、精锐教育、朴新教育均在被强制退市的边缘徘徊(美股六个月低于1美元/股将退市)。

 

四季教育2021财年年报显示,小学业务营收为2.08亿元,中学业务营收为5090万元,二者合计占比高达92.3%。截至9月27日,四季教育股价为0.8美元,总市值为3700.99万美元。四季教育发布公告表示,将在12个月期间以美国存托股票的形式回购其总价值高达1500万美元的普通股。

精锐教育截至2021年2月28日的第二财季业绩显示,核心业务精锐个性化(K12 1对1教育)、精锐少儿教育和精锐在线,分别占总营收的78.9%、16.6%和3.5%。截至9月27日,精锐教育股价为0.37美元,总市值为5986.66万美元。

朴新教育5月24日发布的业绩报告显示,K12辅导服务的营收为5.51亿元,占总营收的80.17%。7月23日起,公司股价跌破1美元/股。截至9月27日,朴新教育股价为0.48美元,总市值为4198.24万美元。

从宏观的维度来看,“限价”颠覆了学科类机构的商业模式。在商业模式画布的九个主要构造块中,以K12为主业务的培训机构关键业务、成本结构、渠道通路、收入来源几个因素在政策影响下,剧烈波动。

在K12业务方面,目前为止,学而思培优行动是大范围关闭线下教学点,同时逐步将小初阶段的学科类课程全部转至线上;新东方则选择舍弃东方优播K12小班业务,未来或在秋季课程结束后停止小学、初中学科业务的线下招生,各个城市逐步关闭教学点。

然而,他们仍未能回答一个关键性的问题,行业利润空间骤降,以后靠什么盈利?转型中的素质教育、职业教育等课程,仍处于市场检验阶段。从试错、教学交付反馈、再次打磨产品、寻找核心盈利点从而建立起新的商业模式还需很长时间,也难怪高途陈向东称其为第三次创业。

就目前而言,行业利润空间压低,大部分产品或将不复存在。没有了商业利润支撑,可能只有毛利相对较高、规模较大的产品还有生存的可能。

当产品属性特征消失,教培行业服务属性会不会进一步凸显?毛利率还算高的教育硬件产品还有多大的想象空间?

经济学家熊彼特曾提出“破坏性创新”的概念,把创新视为不断破坏“旧的”而创造出“新的”经济结构,从根本上颠覆旧有的制度和模式。

也许,教培行业等待的是一场破坏性创新革命,也许是新兴的技术或理念完成整个行业的重塑。

– END –

转自:https://mp.weixin.qq.com/s/fCnB51B0nRlVit62dFbZJw

别再问我exe反编译成Python脚本了!

来自公众号:凹凸数据

大家好,我是小五🧐

今年年初的时候,我写了一篇:别再问我Python打包成exe了!(终极版),相信解决了不少小伙伴的Pyinstaller打包问题。

不过我最近遇到了一个问题,自己打包好的exe文件还在,但是Python源文件不知什么时候被误删了。现在想改动一下功能,重写Python脚本工程量也太大了,怎么办?

请看下文:

作者简介

小小明,数据、Python爱好者。个人博客地址:https://blog.csdn.net/as604049322

今天我将教大家如何反编译exe文件,即将自己或别人写好的exe,还原成Python源码。

以最近写Python一键自动整理归类文件为例进行演示,运行所需的代码和文件都会在文末提供给大家。

别再问我exe反编译成Python脚本了!

打包成单文件所使用的命令为:

pyinstaller -Fw --icon=h.ico auto_organize_gui.py --add-data="h.ico;/"

打包成文件夹所使用的命令为:

pyinstaller -w --icon=h.ico auto_organize_gui.py --add-data="h.ico;."

不管是哪种打包方式都会留下一个exe文件。

首先我们需要从exe文件中抽取出其中的pyc文件:

抽取exe中的pyc文件

抽取pyinstaller打包的exe中的pyc文件,提取pyc文件有两种方法:

  1. 通过 pyinstxtractor.py 脚本提取pyc文件
  2. 通过 pyi-archive_viewer 工具提取pyc文件

脚本提取pyc文件

pyinstxtractor.py 脚本可以在github项目 python-exe-unpacker 中下载,地址:

https://github.com/countercept/Python-exe-unpacker

下载该项目后把其中的pyinstxtractor.py脚本文件复制到与exe同级的目录。

然后进入exe所在目录的cmd执行:

Python pyinstxtractor.py auto_organize_gui.exe

执行后便得到exe文件名加上_extracted后缀的文件夹:

别再问我exe反编译成Python脚本了!

对两种打包方式产生的exe提取出的文件结构稍有区别:

别再问我exe反编译成Python脚本了!

工具提取pyc文件

pyi-archive_viewer是PyInstaller自己提供的工具,它可以直接提取打包结果exe中的pyc文件。

详细介绍可参考官方文档:ttps://pyinstaller.readthedocs.io/en/stable/advanced-topics.html#using-pyi-archive-viewer

执行pyi-archive_viewer [filename]即可查看 exe 内部的文件结构:

pyi-archive_viewer auto_organize.exe

操作命令:

U: go Up one level
O <name>: open embedded archive name
X <name>: extract name
Q: quit

然后可以提取出指定需要提取的文件:

别再问我exe反编译成Python脚本了!

要提取其他被导入的pyc文件,则需要先打开PYZ-00.pyz

别再问我exe反编译成Python脚本了!

很显然,使用PyInstaller的pyi-archive_viewer 工具操作起来比较麻烦,一次只能提取一个文件,遇到子模块还需执行一次打开操作。

所以后面我也只使用pyinstxtractor.py 脚本来提取pyc文件。

反编译pyc文件为py脚本

有很多对pyc文件进行解密的网站,例如:

  • https://tool.lu/pyc/

不过我们直接使用 uncompyle6 库进行解码,使用pip可以直接安装:

pip install uncompyle6

uncompyle6可以反编译.pyc后缀结尾的文件,两种命令形式:

  1. uncompyle6 xxx.pyc>xxx.py
  2. uncompyle6 -o xxx.py xxx.pyc

以前面编码过程中生成的缓存为例进行演示:

uncompyle6 auto_organize.cpython-37.pyc>auto_organize.py

执行后便直接将.pyc文件反编译成Python脚本了:

别再问我exe反编译成Python脚本了!

从编译结果看注释也被保留了下来:

别再问我exe反编译成Python脚本了!

对于不是pyc后缀结尾的文件,使用uncompyle6反编译时会报出 must point to a Python source that can be compiled, or Python bytecode (.pyc, .pyo) 的错误。

所以我们需要先对提取出的内容人工修改后缀:

别再问我exe反编译成Python脚本了!

运行入口pyc文件反编译

对于从pyinstaller提取出来的pyc文件并不能直接反编译,入口运行类共16字节的 magic时间戳被去掉了。

如果直接进行反编译,例如执行 uncompyle6 auto_organize_gui.exe_extracted/auto_organize_gui.pyc

会报出如下错误:ImportError: Unknown magic number 227 in auto_organize_gui.exe_extractedauto_organize_gui.pyc

使用支持16进制编辑的文本编辑器查看一探究竟,这里我使用UltraEdit32

分别打开正常情况下编译出的pyc和从pyinstaller提取出来的pyc文件进行对比:

别再问我exe反编译成Python脚本了!

可以看到前16个字节都被去掉了,其中前四个字节是magic,这四个字节会随着系统和Python版本发生变化,必须一致。后四个字节包括时间戳和一些其他的信息,都可以随意填写。

我们先通过UltraEdit32向pyinstaller提取的文件添加头信息:

别再问我exe反编译成Python脚本了!

选择开头插入16个字节后,只需要替换前4个字节为当前环境下的magic:

别再问我exe反编译成Python脚本了!

然后执行:

uncompyle6 auto_organize_gui.exe_extracted/auto_organize_gui.pyc>auto_organize_gui.py

执行后可以看到文件已经顺利的被反编译:

别再问我exe反编译成Python脚本了!

依赖性pyc文件反编译

考虑再反编译导入的其他依赖文件:

别再问我exe反编译成Python脚本了!

先用UltraEdit32打开查看一下:

别再问我exe反编译成Python脚本了!

可以看到对于非入口运行的pyc文件是从12字节开始缺4个字节。

这里我们选择第13个字节再插入四个字节即可:

别再问我exe反编译成Python脚本了!

然后再执行:

uncompyle6 auto_organize_gui.exe_extracted/PYZ-00.pyz_extracted/auto_organize.pyc > auto_organize.py

然后成功的反编译出依赖的文件:

别再问我exe反编译成Python脚本了!

代码与原文件几乎完全一致:

别再问我exe反编译成Python脚本了!

批量反编译

如果一个exe需要被反编译的Python脚本只有3个以内的文件,我们都完全可以人工来操作。

但是假如一个exe涉及几十个甚至上百个Python脚本需要反编译的时候,人工操作未免工作量过于巨大,我们考虑将以上过程用Python实现,从而达到批量反编译的效果。

提取exe中的pyc

import os
import sys
import pyinstxtractor

exe_file = r"D:/PycharmProjects/gui_project/dist/auto_organize_gui.exe"
sys.argv = ['pyinstxtractor', exe_file]
pyinstxtractor.main()
# 恢复当前目录位置
os.chdir("..")
[*] Processing D:/PycharmProjects/gui_project/dist/auto_organize_gui.exe
[*] Pyinstaller version: 2.1+
[*] Python version: 37
[*] Length of package: 9491710 bytes
[*] Found 984 files in CArchive
[*] Beginning extraction...please standby
[*] Found 157 files in PYZ archive
[*] Successfully extracted pyinstaller archive: D:/PycharmProjects/gui_project/dist/auto_organize_gui.exe

You can now use a Python decompiler on the pyc files within the extracted directory

预处理pyc文件修护校验头

def find_main(pyc_dir):
    for pyc_file in os.listdir(pyc_dir):
        if not pyc_file.startswith("pyi-"and pyc_file.endswith("manifest"):
            main_file = pyc_file.replace(".exe.manifest""")
            result = f"{pyc_dir}/{main_file}"
            if os.path.exists(result):
                return main_file

pyc_dir = os.path.basename(exe_file)+"_extracted"
main_file = find_main(pyc_dir)
main_file

读取从pyz目录抽取的pyc文件的前4个字节作基准:

pyz_dir = f"{pyc_dir}/PYZ-00.pyz_extracted"
for pyc_file in os.listdir(pyz_dir):
    if pyc_file.endswith(".pyc"):
        file = f"{pyz_dir}/{pyc_file}"
        break
with open(file, "rb"as f:
    head = f.read(4)
list(map(hex, head))
['0x42''0xd''0xd''0xa']

校准入口类:

import shutil
if os.path.exists("pycfile_tmp"):
    shutil.rmtree("pycfile_tmp")
os.mkdir("pycfile_tmp")
main_file_result = f"pycfile_tmp/{main_file}.pyc"
with open(f"{pyc_dir}/{main_file}""rb"as read, open(main_file_result, "wb"as write:
    write.write(head)
    write.write(b""*12)
    write.write(read.read())

校准子类:

pyz_dir = f"{pyc_dir}/PYZ-00.pyz_extracted"
for pyc_file in os.listdir(pyz_dir):
    pyc_file_src = f"{pyz_dir}/{pyc_file}"
    pyc_file_dest = f"pycfile_tmp/{pyc_file}"
    print(pyc_file_src, pyc_file_dest)
    with open(pyc_file_src, "rb"as read, open(pyc_file_dest, "wb"as write:
        write.write(read.read(12))
        write.write(b""*4)
        write.write(read.read())

开始反编译

from uncompyle6.bin import uncompile

if not os.path.exists("py_result"):
    os.mkdir("py_result")
for pyc_file in os.listdir("pycfile_tmp"):
    sys.argv = ['uncompyle6''-o',
                f'py_result/{pyc_file[:-1]}'f'pycfile_tmp/{pyc_file}']
    uncompile.main_bin()
别再问我exe反编译成Python脚本了!

完整代码下载见文末。

这样我们只需将Python脚本、exe文件和pyinstxtractor.py脚本文件 放置到同一文件夹下,运行我们的Python脚本。即可反编译exe。

可以看到已经完美的反编译出exe其中的Python脚本:

别再问我exe反编译成Python脚本了!

好了,相信大家已经明白了反编译的原理。那么既然是攻防,如何防止自己打包的exe被反编译呢?

别再问我exe反编译成Python脚本了!

如何防止exe被反编译呢

只需在打包命令后面加上--key命令即可,例如文章开头的命令可以更换为:

pyinstaller -Fw --icon=h.ico auto_organize_gui.py --add-data="h.ico;/" --key 123456

123456是你用来加密的密钥,可以随意更换。

该加密参数依赖tinyaes,可以通过以下命令安装:

pip install tinyaes

打包后再次执行反编译:

exe_file = r"D:/PycharmProjects/gui_project/dist/auto_organize_gui.exe"
uncompyle_exe(exe_file, True)

结果只有入口脚本反编译成功,被依赖的脚本均被加密,无法直接被反编译:

别再问我exe反编译成Python脚本了!

可以看到抽取的中间结果变成了.pyc.encrypted格式,无法直接被反编译:

别再问我exe反编译成Python脚本了!

可以看到,常规手段就无法直接反编译了。

这个时候还想反编译就需要底层的逆向分析研究了,或者pyinstaller的源码完整研究一遍,了解其加密处理的机制,看看有没有破解的可能。

— EOF —

 

转自:https://mp.weixin.qq.com/s/GAYapTRX82cklHw9dT9vhg

电荒背后的煤电博弈

2003年下半年,刚刚战胜疫情的中国,迎来了一场全国范围内的拉闸限电。
在武汉,8月1号这天的气温突破百年记录,汉口一所变电站因为负荷太高而跳闸起火,20万居民受影响;在上海,近1000家企业限电,而市区的景观灯光从7月30日后晚上十点前便不再点亮。
在南京,北河口水厂发生电路意外事故,造成城区大面积停水10小时,市长亲自出面道歉;而即使工业欠发达的广西,也从10月份开始出现供电紧张,到10月中旬已经拉闸限电2146次。
在2003年6月份,据统计有16个省市采取过限电措施;8月份,这一数字变成了19个;到年底,总共已有22个省市拉过闸;而到2004年1季度结束的时候,这个数字进一步上升到了24个。
2003年下半年的拉闸限电,跟2003年上半年的疫情爆发一样,虽然性质不同,但都算波及全国的公共事件。
很多伏笔从那时已被埋下:2003年中国重化工业进程启动,经济进一步起飞;两大电网和五大发电集团刚刚完成重组,电力投资即将狂飙猛进;而煤老板们的黄金十年,就是从这时拉开了帷幕……
时间兜兜转转到了2021年,无论是疫情,还是限电,都有了很多似曾相识的感觉。
从2003年到2021年,中国电力基础设施发生了翻天覆地的变化,全国发电量从03年的1.91万亿度飙升到去年的7.42万亿度。但同时,一些让历史出现轮回和重复的机制也延续了下来:煤电博弈。
而回归到发电这个“古老”行业,里面的玩家虽然都是老百姓眼里的巨无霸,但如果用纯商业角度审视:中国的发电企面对上游的资源品周期和下游的价格管制,其地位完全无法跟“躺平赚钱”的西方公用事业相提并论。这种“夹心层”的地位反过来又会大幅异化其商业行为。
因此,拉闸限电的幕后真相显然不在“大棋党”的臆测里,也不能简单地用“双碳”和外需来解释。其真正答案可能并不像网友想象的那么复杂,反而可以用很简单的商业或投资术语来解释:资源周期、价格管制、煤电博弈,以及火电的商业模式。
所以火力发电到底是一个什么样的行业?这一次拉闸限电背后的原因是什么?这是本篇文章试图回答的问题。
01
电荒往事:三次限电的三种逻辑
电荒在中国其实并非稀缺事物。进入到2000年之后,中国加上这次一共发生过三次影响比较大的“电荒”。
第一次“电荒”发生在2002年到2004年,也即是文章开头提到的电荒。这次电荒的根源,还要追溯到亚洲金融危机的1998年。
当时由于金融危机,中国对外出口大幅度下滑,电力需求增速从90年代初的11%下降到了1998年的2.1%。但整个90年代,国内发电装机的增速始终维持在7-10%之间,各省份都在狂建火电厂。
因此,到了世纪之交的2000年左右,中国会出现了严重的电力供应过剩,发电机组利用率大幅下降,以至于政府开始鼓励全民用电,更让不少地方电力局以及媒体高呼“拉闸限电有望成为历史”。
同一时期,钢铁、石化等重化工耗电大户成为国企改制重灾区,为了解决发电机组利用率下降的压力,加之电力系统改革来临,当时还催生了一个不成文的规定——三年不建电厂。
话说得有多满,翻车时就有多尴尬:2003年开始,中国重化工业出现爆发式加速增长,四大高能耗行业占据了全社会用电量25%以上,电力需求增速飙到15%以上,让决策层都多少有些始料未及。
一边是供给萎缩,一边是需求暴涨,导致的结果就是20个省市先后拉闸限电,缺电地区覆盖了除东北电网外几乎所有大区电网,在许多地区甚至出现了全年”持续性缺电“和”随机性缺电“。

电荒背后的煤电博弈

2004年的媒体报道

当然,证券交易所并没有被拉闸限电,2003年A股市场上钢铁、石化、汽车这些高能耗行业板块反而出现了一轮激情四射的上升行情,成为股民嘴里津津乐道的“五朵金花”。
第二次“电荒”发生在2011年:当年4-5月以及9-10月,多个地区出现缺电状况。华东在一季度出现明显电力供应缺口,华中在二季度干旱气候影响水电供给的情况下,也进入电力供应紧张状态。
“十一五”期间,我国首次实行“双控”目标,对能源消耗强度和能源消耗总量进行硬性约束,要求能耗强度在五年间大幅下降20%。2010年恰好是“十一五”收官,在能耗强度目标的硬性约束下,很多省份在5月开始拉闸限电狂冲KPI。
考试前一天才通宵复习,后果往往是灾难性的:2011年,“十一五”考核结束,产能被压制的制造业开始“报复性用电”,本就位居高位的煤价连续经历了两轮上涨,火电企业成本激增,越努力越亏损的火电企业决定冷静一下,通过减少供应以换取市场话语权。
最终在2011年,发改委两度上调电价,火电企业总算是守住了亏损底线。随着此后煤炭价格下行,第二次限电宣告终结。
和2002年纯粹的供需关系错配导致的限电不同,2011年的电荒第一次出现了政策因素:十一五末期的能耗压力造成了罕见的“淡季电荒”。另一个影响电力供应的核心因素——煤炭价格,也在这一轮的电荒中刷足了存在感。
而从今年初夏开始到近期大规模爆发的限电,原因和2011年的电荒有一些相似之处:
一方面,今年是双碳目标的开局之年,对于能耗双控目标的执行力度大幅提升。今年5月和8月,发改委都以报身份证的方式点名批评了能耗不降反升的省份。一些地方前期指标用完,只能假期前一天赶作业。
另一方面,煤炭价格伴随全球通胀持续上行,火电企业再度陷入越努力越亏损的境地。而在能耗双控背景下,煤炭产能利用率一直处于高位、煤炭库存降至历史低点,地方煤炭项目的审批也更加严格,再度加大了煤炭供应压力。在发改委通报名单里,宁夏、新疆、云南、陕西都是产煤大省。
曾被寄予厚望的新能源去哪儿了?要知道在过去几年,以火电、水电、核电为代表的传统能源投资额持续走低,高碳排的火电下降最明显,而风电和光伏的装机自2012年后大幅提升,电源装机占比从6%提升到了目前的24%。它们顶不上吗?
的确顶不上。从数据上看,我国目前对火电的依赖依然比较严重:火电装机占比虽然降到了56.6%,却贡献了71.8%的电力供给;而风电和光伏装机虽然有24%的占比,但发电量仅占总体的10%左右。
电荒背后的煤电博弈
总结下来,全球大放水叠加碳中和的政策推动,促成煤炭库存锐减价格上天,加上气候反向助攻导致水电产能受限,共同促成了当下的大规模限电。
相比火电,其他的电力来源都有或多或少的缺陷,比如光伏只能白天开动;风电受风力大小影响,功率波动很大;水电则受气候影响;抛开碳排放因素,只有火电能够保证稳定性与可控性。
今年3月,丁仲礼院士接受媒体采访时,就谈到我国目前对火电的依赖:“非碳能源占比的提升不是一个线性过程,根本上还是要由技术进步所驱动。煤炭作为主力能源,还将在我国能源结构中主导较长的一段时期。”
那么,为什么电荒还会周而复始的出现?一切的答案,就藏在“周期”里。
02
行业密码:逃不开的逆周期
贯穿中国火电行业发展的最大命题,可以用六个字概括:市场煤、计划电。
煤炭作为工业能源和大宗商品,定价早早完成了市场化;电力作为公共事业,电价多少要服从“看得见的手”指挥,但电力同时又是商业机构,自身盈利又被“看不见的手”影响。过去近20年里,煤电双方无数次明争暗斗,大多归因于此。
火电企业赚钱与否,主要有三个关键因素:利用小时数上网电价煤价
电荒背后的煤电博弈
利用小时数可以简单理解为发电机组的运转时长:因为电力只能即发即用,无法大规模储存,但用电需求却有峰谷效应,所以电厂既要准备好产能应对高负荷,又不能时刻把产能开满造成浪费。因此,火电厂闲置的产能越少,对应的收入就越高。
有人可能会有疑问,既然装机量已经考虑了高负荷,为什么还会出现供应紧张?这是因为如果备用容量过多,对火电厂的收入冲击会过大。所以相关行业规章规定,“总备用容量不宜低于最高负荷的15-20%”。
煤价则是决定火电厂成本的核心要素,煤炭往往占发电成本70%左右。上网电价则可以简单理解为电厂发电的出售”单价“,对火电厂来说,自然是煤价越低、电价越高、产能开的越满越好。
但问题在于,煤价多少、电价几何、机组开多久,都不是火电厂自身能决定的。而相比煤炭价格的频繁波动,电价虽然也会调整,但总体比较稳定,这就造就了火电行业最大的特征:逆周期。
即火电厂的盈利状况,几乎完全依赖于煤炭价格的涨跌周期。换句话说就是:火电厂发财的时候,往往也是煤炭企业哀鸿遍野的时候;而煤炭企业吃肉的时候,就轮到火电厂吃翔了。
从下面这张图可以看出,代表火电厂的橙色阵营和代表煤炭企业的黑色阵营,双方的盈利能力呈现明显的负相关关系,公用事业行业8%-10%的收益率,在火电行业完全失效。
电荒背后的煤电博弈
历史上看,煤炭的产能周期大概在4-6年,从下游需求拉动煤价上涨,到大量新煤矿建设投产,煤炭供给增加,煤价随之步入下滑阶段。2007年到2013年就是一轮标准的煤炭周期,火电企业伴随煤价涨跌,走完了一轮从吃屎到吃肉的轮回。
很多行业都有周期性的特征,其中的企业也难免今年吃肉明年吃屎,但由于电力自身公共事业的属性,一旦企业经营不稳定,可能会出现系统性风险,这显然不是决策层希望看到的。
2016年后,煤价开始新一轮上涨周期,改委牵头发文,将动力煤价格划分为绿色、蓝色、红色三种情况,一旦煤炭价格波动达到6%以上,看得见的手就会出马。
当时,发改委将政策期限限定在在2016-2020年之间,因为按照以往的规律,2020年应当是产能周期的拐点,轮到火电厂端起碗来把肉吃,结果没想到2020年遭遇疫情黑天鹅,2021年又赶上双碳目标开年,煤价不但没降,反倒坐上火箭。
在本次大规模限电前,就有11家火电企业联名给北称北京城管委上书,称京津唐电网燃煤厂成本已超过盈亏平衡点,与基准电价严重倒挂,部分企业已出现资金链断裂[3]。

类似的事件在历史上并不是第一次出现,而每一次煤价上涨,火电企业联名上书,都会掀起一轮涨电价的呼声。但电价怎么涨、涨多少、谁说了算,背后是一场长达20年的电力市场化改革。

03
煤电博弈:下不完的大棋
2004年,发改委发文开启了电价市场化改革的大幕。改革的核心是“煤电联动”——即根据电煤综合出矿价格为基础,通过公式划定上网电价,同时规定电力企业要自行消化30%的煤价上涨因素。
在这之前,中国电力行业已经完成了”政企分开“和”厂网分离“两轮改革。和中国的很多改革一样,电力行业在2004年正式摸完了所有石头,开始进入“深水区”。
2004年6月,发改委首次核定标杆电价,在2020年煤电联动被浮动电价替换前,全国性的电价调整一共出现了12次,其中8次明确与煤电联动制度挂钩。
电荒背后的煤电博弈
煤电联动的初衷,是通过行政手段响应煤价波动,在一定程度上解决电价与煤价“一个计划一个市场”的症结。但问题是,煤电联动本身就是一个“事后调节”的机制,加上政策规定了不少于6个月的“联动周期”,相比快速波动的煤价,电价的调整频率还是太低。
这也导致了一个非常有趣的行业现象:煤价进入上涨周期,火电企业便开始集体哭穷,上书中央“呼吁煤电联动”。煤价步入下跌周期,舆论又开始对电价发难。
2008年煤炭价格上涨,恰逢煤炭市场化推进,价格基本放开,加之2003年电荒后大量电力项目开始运转,火电企业亏损严重,随即呼唤联动。随后发改委在7月和8月联动两次,但相比全年50%的煤价涨幅,联动幅度杯水车薪。
金融危机后,煤价持续高企,火电企业普遍连亏4年。2011年,发改委卡准周期连续三次联动,依然难解火电亏损。结果2013年后煤价下行,火电又迎来大丰收,呼吁电价过高的声音此起彼伏。2014年后,发改委再度掏出联动大法砍电价,2016年后,煤价又一次上行,煤电博弈重新上演。
彼时煤炭行业经过一轮供给侧改革,议价权随着行业集中度上升而加大,又撞上2015年煤电联动制度修订,火电企业期望中的“涨电价”落空。
2016年12月,华能、华电、大唐以及国电在内的4大电力央企,就曾以电煤价格超出企业成本为由,联合向陕西省政府提交报告,希望政府上调电价。2017年3月,包括四大电力央企在内的七家火电企业又联名上书宁夏经信委。
煤企大都是地方企业,而发电集团大多数是央企,这又给煤电对狙笼罩上了一层央地关系的隐喻。
煤电联动诞生之后的十多年里,两个行业的博弈伴随着煤炭价格周期周而复始的上演,自始至终没能解决火电“逆周期”的问题。所以说要想明白一些道理,还是要看合订本。
而在2015年后,中央层面开始推动清洁能源上马,火电被打成过剩产能;同时期,降低工商业用电成本被写进政府工作报告,煤电联动机制自然也要顾大局识大体。2018年和2019年连续两年,电价在煤价上涨的背景下连续下调,煤电联动机制名存实亡。
2019年,煤电联动机制被正式改为“基准价+上下浮动”机制,浮动范围为上浮不超过10%、下浮不超过15%,赋予了火电企业更高的定价自主权。
但人算不如天算,疫情之后大宗商品涨价,加之能耗“双控”背景下,煤炭库存降至历史低点,导致的结果就是煤价涨上天,终端电价没调整,火电厂发一度亏一度。
从数据上看,今年的用电需求增速中枢在7%~8%之间,虽然处于相对高位,但2018年的全年用电增速同样达到了8.5%,并没有出现大规模限电的情况。
两年的区别,就在于煤炭价格的上行和中央层面的能耗“双控”,由于前期指标过早用完,临近新的能耗双控指标考核,导致地方采取见效快、一刀切的停电停产措施。
其实,这一次的限电在去年冬天就展露端倪:去年12月,浙江省提议合理使用灯光照明,三楼以下停开电梯,随后,湖南、江西、内蒙等多个地区先后出台限电举措;今年5月,广东十几个城市启动了有序用电,大部分制造企业被要求错峰用电;7月,河南限制电煤外销,部分工厂限电停产。
站在民生的角度,电力是拱卫工业生产和居民生活的“压舱石”,大规模的供应紧张很容引起连锁反应;站在商业的角度,自带周期属性的生意多半是苦活累活;但如果站在投资的角度,每一次煤电的周期错配,似乎都蕴藏着投资的机会。

遗憾的是,从公开披露的信息来看,即便是翻云覆雨的顶级大佬,在火电行业的投资也是全身而退的少,阴沟翻船的多。

04
火中取栗:不要在没有鱼的地方撒网

席慕蓉说,青春是本仓促的书,流着泪一读再读。在A股,申万火电指数是一个充满误会的指数,无数投资者都吃过它的苦。

由于火电”市场煤、计划电”的机制,煤价随行就市,但电价长期被限死。这就导致行业长期处于盈利有上限,亏损无下限的特征。自1999年该指数发行以来,可以说是只有周期,没有成长,长期原地踏步。

07-08年、14-15年两轮过山车行情,参与的投资者大多数时候都摔得鼻青脸肿,大家可以参考下图。

电荒背后的煤电博弈

哪怕是高手、高手、高高手,买火电股,想挣钱也不是那么容易。A股有两位著名的火电投资者:邓晓峰裘国根,一位是高毅的明星基金经理,一位是重阳投资的创始人,均为业内公认的投资大师。

但他们对火电的投资,似乎也不是特别顺利。

邓晓峰屹立A股十余年,历经几轮牛熊,业绩始终稳定在市场前列。回顾邓晓峰过去的几次经典投资案例,基本都是买在不露锋芒的拐点处。这既是由大资金的规模属性所决定的,也是因为邓晓峰注重长期回报的投资风格。

在2015年和2017年的两次采访中,邓晓峰详细拆解了自己若干经典投资案例的具体逻辑,其中就包括了在2011年的火电布局。

从2011年开始,邓晓峰开始坚定地布局国电电力等火电股。他认为电力的需求没问题,但煤价太高吃掉了发电企业的利润。2011年国家开始执行紧缩政策,固定投资开始退潮,煤价迟早要跌。

既然煤煤价要跌,那么火电肯定有机会。邓晓峰进一步给出了三大逻辑:

1、发电企业效率都很高,因为长期煤价很高,电价受限,内部已经把各种挖潜的办法都用上了;

2、供需会改善,因为电力公司持续亏损,投资长期不振,而电力需求却是与日俱增的,在2010年之后还有钱去投电厂的,就只有神华了;

3、电力公司杠杆上的很满,又都跌得很惨,一旦行业回暖,全行业的回报率会恢复到非常好的水平。

因此邓晓峰认为“电力行业的春天正在到来,机会来临时要用盆接,不能用针顶。”

我们研究了邓晓峰当时的持股,发现其配置最多的火电股是国电电力。不过在我们尝试拆解国电电力这笔投资的具体盈亏时,却得到了不同的结论。

电荒背后的煤电博弈

邓晓峰管理的博时主题行业和社保一零三组合从2011年三季度开始布局国电电力,在2014年一季度悉数离场。如果按当季平均成交价计算,邓晓峰动用了十亿级别的资金,但历时两年多,只赚了一千多万。

更让人感叹的是,在邓晓峰离场后,国电电力反而迎来了一轮翻倍暴涨(主要是受益2014-2015年的牛市),把大佬安排的明明白白。

事先声明:这种计算略显粗糙,邓晓峰离场彼时也有即将离职的影响。但事实就是,邓晓峰2011年对国电电力的这轮投资实际上没有赚到太多钱,属于典型的“逻辑性感,结果骨感”。

坚定的价值投资者裘国根也很热衷于买火电股,其投资哲学的精华可以归纳为三句话:不要亏损!不要亏损!不要亏损!重阳的这种投资风格天然地让他们对公用事业股更为关注,尤其是火电股。

重阳首席投资官陈心就在采访中拿火电举例:

在发达国家,这是一个有比较稳定增长和估值的行业。但在我们的市场里,则以两三年为一个周期,上下波动非常剧烈。好的时候把它捧上天,烂的时候,尤其在香港市场一些火电股便宜得一塌糊涂。但这个行业是不可以没有的,这个时候往往是买这类股票最好的时点。

裘老板和重阳显然对火电行业”市场煤、计划电”的特征也洞若观火。

自2018年2月开始,裘国根及重阳集团大手笔布局港股华能国际电力,连续12次增持,动用资金超过26亿人民币。然而华能国际电力此后三年的股价却走了一个深v,在今年股价大涨超过65%的情况下,重阳却依然没能赚到钱。

电荒背后的煤电博弈

裘国根和邓晓峰都算是机构投资者中的佼佼者了,对周期行业的理解都属于业内顶级水平,但两家大佬都没捞到什么好处,可见火电行业实在是凄苦。

有意思的是,两位大佬都在水电股上赚过大钱。邓晓峰在国投电力单只股票上赚过20亿,裘老板就更不用说了,投资长江电力已成为A股传世经典,盛传重阳研究员转正的条件就是算清楚长江电力的现金流。

相比水电,火电最大的基本面就是其商业模式的缺陷:这始终是个成本、定价、产量都不由企业控制的行业。想要在火电股里火中取栗,不如想想那句名言:不要在没鱼的地方撒网。

05
尾声

一个产业现象问题的背后,往往是一个产业的结构问题,而不是所谓的阳谋、大棋论和推背图。

中国在电力领域有没有深谋远虑的布局?有的。但具体到拉闸限电,还是要回归产业本身的特点去分析,所谓“定价权争夺战”、“倒逼出口企业涨价”这种为了减肥做截肢的论调,的确是在牵强附会。

煤电博弈、资源周期、电价管制、火电的逆周期属性等行业特点,是导致历次电力供需周期的核心原因,包括这次。而外围的进口煤炭下降、外需增长、双限只是加速了这个周期的运转。

从另外一个角度看,在中国每一次的大型公共事件,往往都会成为改革的契机。

2003年电荒之前,国内普遍认为依靠三峡和滇黔的西电东输供应长三角与珠三角已经足够。但大范围供电紧张后,决策层意识到发电投资的不足,加快了发电项目的审批进度。

彼时,两大电网+五大发电集团的格局刚刚形成不久,做大规模意愿正强,一轮火电投资的高潮期就此到来,这保证了2003年之后的经济起飞,也顺便让一批煤老板成为全国人们羡慕的对象。

而2011年“淡季电荒”后,尚未被终止的煤电联动机制随即迎来大调整,能源结构转型被提上日程。而这一轮的拉闸限电,也必然会促使产业界与决策层,重新审视国内能源结构的方方面面。

我国目前的能源结构,其实处于一个“未立先破”的局面:即传统能源投资下降、新型能源投资加速的切换已经完成,但对应的能源供给的切换还没有完成。而一些地方“运动式”的减碳,又将这个切换过程中的缺陷暴露了出来。

今年3月的采访中,丁仲礼院士就曾谈到这一点:

未来人民的生活水平要进一步提高,对能源的需求必然会增加,虽然说2030年要碳达峰,但不意味着现在就不能新增任何煤炭项目。在经济社会发展的用能需求上,一定要实事求是,不应该为了追求某些指标好看,或者为了达标而去搞“一刀切”。

丁院士其实很明确的阐述了一个道理:在涉及到关乎亿万老百姓生活的领域,要警惕“一刀切”或者“运动式”的搞法。而在社会舆论经常渲染“大是大非”的当下,尤其要把人民群众的利益放在最前面。

实事求是,其实就是最重要的“大是大非”。

全文完。感谢您的耐心阅读。

电荒背后的煤电博弈

[1] “煤电顶牛”历史重现,宁夏煤电博弈内情,界面新闻

[2] “煤电顶牛”矛盾再升级,中国能源报

[3] 11家煤电企业上书“哭穷”:无力完成北京地区电力交易,中国新闻周刊

[4] 专访丁仲礼:实现“碳中和”需以市场机制为基础,技术迭代为前提,中国新闻周刊

[5] “电荒”往事——兼议目前电力股投资机会,光大证券

[6] 行业风火轮:十年电荒,卷土重来,东吴证券

[7] 供给才是主导本轮“电荒”的原因,国泰君安

[8] 以史鉴今,火电王者归来,华创证券

[9] 火电行业研究框架:周期依旧在,尚待格局改,英大证券

[10] 当前时点我们如何看火电V:市场电:从哪里来,又去向何方,华泰证券

转自:https://mp.weixin.qq.com/s/nhht4zx_3we82xFRSKAoNg