Wing IDE 5.0 破解之寻找注册码

来源:http://bbs.pediy.com/showthread.php?p=1253653


一.  工具:
1.  uncompyle2
2.  IDA Pro 6.1
3.  WingIDE 5.0本身
二.  工具安装
1.  安装Python2.7
2.  安装WinIDE 5.0
3.  解压uncompyle2,进入解压目录,执行命令python setup.py install
三.  破解过程
1.  直接拷贝C:\Wing IDE 5.0\bin\2.7\src.zip到C:\crack,解压。
2.  cd C:\Python27\Scripts,运行python uncompyle2 --py -o . c:\crack\src,反编译所有的pyo文件。
3.  启动WingIDE 5.0,选择”Obtain or extend a trial license”,获得个10天的试用。
点击help-->Enter License…,弹出的对话框中选择”Install and activate a permant license”,
随便输几个啥,我这里输入”FFFF”,提示如下图:
 名称:  1.png查看次数: 3文件大小:  35.2 KB
哈,说的很明白了。
4.  找License ID的规律
用WingIDE打开c:\crack\src\process\wingctl.py,搜索字符串”Invalid license id”,定位到这串代码

代码:
        if self.__fRadioActivate.get_active():id = self.__fLicenseIDEntry.get_text()errs, lic = abstract.ValidateAndNormalizeLicenseID(id)if len(errs) == 0 and id[0] == 'T':errs.append(_('You cannot enter a trial license id here'))if len(errs) > 0:msg = _('Invalid license id: %s. Please check and correct it.  Errors found were:\n\n%s') % (id, '\n'.join(errs))buttons = [dialogs.CButtonSpec(_('_OK'), None, wgtk.STOCK_OK)]dlg = messages.CMessageDialog(self.fSingletons, _('Invalid License ID'), msg, [], buttons)dlg.RunAsModal(self)return True
这可以看到,License ID首字符如果是’T’的话,则是trial license,这当然不是我们要的。
右键点击ValidateAndNormalizeLicenseID,选Go to Definition,到
代码:
def ValidateAndNormalizeLicenseID(id):errs, id2 = __ValidateAndNormalize(id)if len(id2) > 0 and id2[0] not in kLicenseUseCodes:errs.append(_('Invalid first character: Should be one of %s') % str(kLicenseUseCodes))if len(id2) > 1 and id2[1] != kLicenseProdCode:cur_product = 'Wing IDE %s' % config.kProductlic_product = kLicenseProdForCode.get(id2[1], None)if lic_product is None:lic_product = _('an unknown product')else:lic_product = 'Wing IDE %s' % config.k_ProductNames[lic_product]errs.append(_('Your license is for %s, but you are currently running %s.  Please download the correct product from http://wingware.com/downloads or upgrade your license at https://wingware.com/store/upgrade') % (lic_product, cur_product))if len(errs) > 0:check_code = id.strip().upper().replace('-', '')if len(check_code) == 16:looks_like_11 = Truefor c in check_code:if c not in '0123456789ABCDEF':looks_like_11 = Falseif looks_like_11:errs = [_('You cannot activate using a Wing IDE 1.1 license:  Please use a trial license or upgrade your license at http://wingware.com/store/upgrade')]if len(errs) > 0:return (errs, None)else:return ([], id2)
这时我们发现,这个函数是在abstract.py中的。
我们首先看看__ValidateAndNormalize在干些啥,转到定义,
代码:
def __ValidateAndNormalize(code):"""Remove hyphens and extra space/chars in a license id or activationrequest, and validate it as within the realm of possibility.  Returnserrs, value."""errs = []code = code.strip().upper()code2 = ''badchars = ''for c in code:if c in ('-', ' ', '\t'):passelif c not in textutils.BASE30:code2 += cif badchars.find(c) == -1:badchars += celse:code2 += cif len(badchars) > 0:errs.append(_('Contains invalid characters: %s') % badchars)if len(code2) != 20:errs.append(_('Wrong length (should contain 20 non-hyphen characters)'))if len(errs) > 0:return (errs, code2)else:return ([], AddHyphens(code2))
这我们可以看到,License ID的字符必须在BASE30的范围内并且除掉’-’、’ ’、’\t’等字符后必须有20个字符。
程序定义的BASE30 = '123456789ABCDEFGHJKLMNPQRTVWXY',
这个定义是在C:\crack\src\wingutils\ textutils.py中。
现在返回ValidateAndNormalizeLicenseID函数,从第二行知道License ID的首字符必须是
kLicenseUseCodes中的一个kLicenseUseCodes = ['T', 'N', 'E', 'C', '1', '3', '6'],前面说过,’T’表示trial license
第四行告诉我们,License ID的第二个字符必须是kLicenseProdCode中的一个
这个kLicenseProdCode定义如下
代码:
kLicenseProdCodes = {config.kProd101: '1',config.kProdPersonal: 'L',config.kProdProfessional: 'N',config.kProdEnterprise: 'E'}
kLicenseProdCode = kLicenseProdCodes[config.kProductCode]
因为我们安装的是Professional版本,所以第二个字符应该是’N’,Enterprise版本还真不知道在哪里下载,反正官网上找不到~~~
好了,总结一下:
License ID 必须有20个字符且每个字符必须是'123456789ABCDEFGHJKLMNPQRTVWXY'中的;
字符必须首字母必须是['T', 'N', 'E', 'C', '1', '3', '6']中的一个,但是我们不会用’T’;
第二个字符必须是['1','L','N','E']中的一个

那现在随便搞个”CN123-12345-12345-12345”输入:
名称:  2.png查看次数: 2文件大小:  16.3 KB
Continue,哈,出来了这个,选择输入激活码
名称:  3.png查看次数: 2文件大小:  21.8 KB
先不管,直接Continue,看看啥反应
名称:  4.png查看次数: 1文件大小:  32.8 KB
哦,又是需要20个字符,并且必须是”AXX”开头,好吧,好戏要上场了。
5.  找Activation Code
还是在c:\crack\src\process\wingctl.py查找字符串” Invalid activation key”,来到这:
代码:
def __PageTwoContinue(self):if self.__fRadioDirect.get_active():self.__StartActivation()return Trueif self.__fRadioManual.get_active():act = self.__fManualEntry.get_text()errs, act = abstract.ValidateAndNormalizeActivation(act)if len(errs) > 0:title = _('Invalid License ID')msg = _('Invalid activation key: %s. Please check and correct it.  Errors found were:\n\n%s') % (self.__fManualEntry.get_text(), '\n'.join(errs))self.__ErrorDlg(title, msg)return Trueactbase = os.path.normpath(fileutils.join(config.kUserWingDir, 'license.pending'))
转到ValidateAndNormalizeActivation的定义处:
代码:
def ValidateAndNormalizeActivation(id):errs, id2 = __ValidateAndNormalize(id)if id2[:3] != kActivationPrefix:errs.append(_("Invalid prefix:  Should be '%s'") % kActivationPrefix)if len(errs) > 0:return (errs, None)else:return ([], id2)
又是__ValidateAndNormalize,前面已经分析过了。看后面,第二行代码清楚的告诉我们,
激活码前三个字符必须是kActivationPrefix ,这个kActivationPrefix = 'AXX'。
好了,我们随便输个”AXX23-12345-12345-12345”,这个当然是错误的。
在c:\crack\src\process\wingctl.py查找字符串” Invalid activation key”的下一处出现的地方,来到:
代码:
self.fLicense['activation'] = acterr, info = self.fLicMgr._ValidateLicenseDict(self.fLicense, None)if err != abstract.kLicenseOK:msg = _('Invalid activation key: %s. Please check and correct it.') % self.__fManualEntry.get_text()errs.append('Current activation -- failed:')errs.extend([ '  ' + t for t in self.fLicMgr._StatusToErrString((err, info)) ])if len(errs) > 0:msg += _('  Validation errors were:\n\n%s') % '\n'.join(errs)title = _('Invalid License ID')
但是这里的函数self.fLicMgr._ValidateLicenseDict,用鼠标右键找不到定义的地方。
我们先看看self.fLicMgr是个啥东西,转到定义:
代码:
class CObtainLicenseDialog(dialogs.CGenericDialog):"""Dialog used to obtain a new license"""kCharWidth = 60def __init__(self, singletons, lic = None):self.fSingletons = singletonsself.fLicMgr = singletons.fLicMgrself.fLicense = lic
self.fLicMg是这个类初始化时传进来的,在类名上右键,点Find Points of Use,来到这里
代码:
def _ObtainLicense(self):"""Prompt user to obtain a license, or quit if they don't get one"""if self._fPromptForSaveDialog or not wgtk.kQt and wgtk.gdk.pointer_is_grabbed():returnif self.__fObtainLicenseDialog is not None:self.__fObtainLicenseDialog.Show()returnself.__fObtainLicenseDialog = CObtainLicenseDialog(self.fSingletons)
这个_ObtainLicense函数是类CWingLicenseManager的成员,
初始化CObtainLicenseDialog的参数是类CWingLicenseManager的成员,转到定义
代码:
class CWingLicenseManager(abstract.CLicenseManager):""" Specialization of the generic license manager for use in Wing IDE """def __init__(self, singletons):""" Constructor """abstract.CLicenseManager.__init__(self)self.fSingletons = singletonsself._fExpiringLicenseCheck = Falseself.__fObtainLicenseDialog = Noneself._fPromptForSaveDialog = False
找CWingLicenseManager这个类的使用点,来到singleton.py中
代码:
    def CreateLicMgr(self):""" Create license manager. Mucking with this code is a violation ofyour software license and a generally sleazy thing to do to a bunch ofguys trying to make a living by creating some decent tools for you. Soplease don't do it. """ lic_mgr = process.wingctl.CWingLicenseManager(self)self.fLicMgr = lic_mgrself.emit('changed', self)
这里终于可以知道CObtainLicenseDialog中的self.fLicMgr其实是CWingLicenseManager。
那么看看CWingLicenseManager的基类是啥?是abstract.py文件中的CLicenseManager,
这个类中有_ValidateLicenseDict()函数的定义。好了,转到这个函数去看看:
代码:
def _ValidateLicenseDict(self, lic, filename):""" Check license for internal integrity and expiration """lic['daysleft'] = _('expired')for key in kRequiredLicenseFields:if not lic.has_key(key):return (kLicenseCorrupt, _('Missing a required line %s') % key)err, msg = self._ValidatePlatform(lic['license'], lic['os'])if err != None:return (err, msg)err, msg = self._ValidateProduct(lic['product'])if err != None:return (err, msg)err, msg = self._ValidateVersion(lic['version'])if err != None:return (err, msg)try:lichash = CreateActivationRequest(lic)act30 = lic['activation']if lichash[2] not in 'X34':hasher = sha.new()hasher.update(lichash)hasher.update(lic['license'])digest = hasher.hexdigest().upper()lichash = lichash[:3] + textutils.SHAToBase30(digest)errs, lichash = ValidateAndNormalizeRequest(lichash)act = act30.replace('-', '')[3:]hexact = textutils.BaseConvert(act, textutils.BASE30, textutils.BASE16)while len(hexact) < 20:hexact = '0' + hexactconfig._locale_valid = 0valid = control.validate(lichash, lic['os'], lic['version'][:lic['version'].find('.')], hexact)valid = config._locale_validexcept:valid = 0if not valid:return (kLicenseCorrupt, _('Invalid license activation'))daysleft = self._GetTermDaysLeft(lic)if daysleft == -1:lic['daysleft'] = _('unlimited')else:if daysleft == -2:return (kLicenseCorrupt, _('Invalid date or termdays in file'))if daysleft == 0:return (kLicenseExpired, None)if daysleft > 12 and lic['license'][0] == 'T':return (kLicenseCorrupt, _('Invalid date or termdays in file'))if daysleft > 190 and lic['license'][0] != 'T':return (kLicenseCorrupt, _('Invalid date or termdays in file'))lic['daysleft'] = str(daysleft) + _(' days left')errs = hostinfo.IDMatch(lic['hostinfo'])if len(errs) > 0:return (kLicenseHostMismatch, None)if filename is not None:err, info = self.__CheckUserCount(lic, filename)else:err = kLicenseOKinfo = []return (err, info)
可以看到,算法不复杂,用lichash和lic[‘license’]做sha运算,之后将sha的值用BASE30变换,
将lichash的前三个字符附加在前面的到新的lichash。
最初的lichash是CreateActivationRequest得到的,
这其实就是在要我们输入激活码那个对话框中显示的Request Code=’ RW518-Q2NNM-13PRE-JQ3JR’。
lic[‘license’]其实就是输入的License ID。
通过看ValidateAndNormalizeRequest的代码,可知lichash的前三个字符分别是:
’R’代表这个是Request code;’W’表示是Windows;’5’表示是5.*版本。
关键就在这句
代码:
valid = control.validate(lichash, lic['os'], lic['version'][:lic['version'].find('.')], hexact)
,好,看看control是啥定义:
代码:
if sys.platform[:5] in ('win32', 'darwi') or sys.platform[:5] == 'linux' and os.uname()[4] not in ('ppc', 'ppc64', 'arm7l'):import ctlutil as control
else:try:import pycontrolcontrol = pycontrolexcept ImportError:dirname = os.path.dirname(__file__).replace('.zip', '')control = LoadFromDat(fileutils.join(dirname, 'pycontrol.dat'), 'pycontrol')
这个ctlutil是啥?搜,我用的Everyting这软件,搜到C:\Wing IDE 5.0\bin\2.7\src\process\ctutil.pyd,这其实就是个dll,IDA反编译它。
反编译后的哑名函数不多,就5个,挨个看。看到sub_10001410这函数的时候,猛然发现有个”_locale_valid”
代码:
.text:10001410 sub_10001410    proc near               ; DATA XREF: .data:100030A8o
.text:10001410
.text:10001410 var_110         = dword ptr -110h
.text:10001410 var_10C         = dword ptr -10Ch
.text:10001410 var_108         = dword ptr -108h
.text:10001410 var_104         = dword ptr -104h
.text:10001410 var_100         = byte ptr -100h
.text:10001410 arg_4           = dword ptr  8
.text:10001410
.text:10001410                 sub     esp, 110h
.text:10001416                 cmp     dword_100030E0, 0
.text:1000141D                 jnz     short loc_10001432
.text:1000141F                 push    offset aConfig  ; "config"
.text:10001424                 call    ds:PyImport_ImportModule
.text:1000142A                 add     esp, 4
.text:1000142D                 mov     dword_100030E0, eax
.text:10001432
.text:10001432 loc_10001432:                           ; CODE XREF: sub_10001410+Dj
.text:10001432                 push    esi
.text:10001433                 mov     esi, ds:PyInt_FromLong
.text:10001439                 push    edi
.text:1000143A                 push    0
.text:1000143C                 call    esi ; PyInt_FromLong
.text:1000143E                 mov     edi, ds:PyObject_SetAttrString
.text:10001444                 push    eax
.text:10001445                 mov     eax, dword_100030E0
.text:1000144A                 push    offset a_locale_valid ; "_locale_valid"
.text:1000144F                 push    eax
.text:10001450                 call    edi ; PyObject_SetAttrString
.text:10001452                 lea     ecx, [esp+128h+var_108]
想到前面_ValidateLicenseDict的代码中也有这么一句:valid=config._local_valid,料想这函数就是在验证了。使用IDA强大的F5,马上就知道,sub_10001020是在计算真正的激活码
代码:
.text:10001489                 mov     ecx, [esp+118h+var_10C]
.text:1000148D                 lea     eax, [esp+118h+var_100]
.text:10001491                 push    eax             ; char *
.text:10001492                 mov     eax, [esp+11Ch+var_104]
.text:10001496                 push    ecx             ; int
.text:10001497                 mov     ecx, [esp+120h+var_110]
.text:1000149B                 call    sub_10001020    ; 计算真正的activation key
.text:100014A0                 add     esp, 8
.text:100014A3                 test    eax, eax
.text:100014A5                 jnz     short loc_100014FC
.text:100014A7                 mov     edx, [esp+118h+var_108] ; 得到输入的activation key的地址
.text:100014AB                 lea     ecx, [esp+118h+var_100] ; 得到计算的Activation Key的地址
.text:100014AF                 nop
.text:100014B0
.text:100014B0 loc_100014B0:                           ; CODE XREF: sub_10001410+BAj
.text:100014B0                 mov     al, [ecx]
.text:100014B2                 cmp     al, [edx] ; 我的妈呀,明文比较呀,这是要发啊~~~
.text:100014B4                 jnz     short loc_100014D0
.text:100014B6                 test    al, al
.text:100014B8                 jz      short loc_100014CC
.text:100014BA                 mov     al, [ecx+1]
.text:100014BD                 cmp     al, [edx+1]
.text:100014C0                 jnz     short loc_100014D0
.text:100014C2                 add     ecx, 2
.text:100014C5                 add     edx, 2
.text:100014C8                 test    al, al
.text:100014CA                 jnz     short loc_100014B0
现在用IDA在1000149B处下断点调试,直接附加到wing.exe,输入License ID:” CN123-12345-12345-12345”,
输入假的激活码” AXX23-12345-12345-12345”。F8单步过lea ecx,[esp+118h+var_100],
内存窗口里转到ecx的地址,得到的是:
“55DF6297CE47296C1916”,这是真正的激活码的sha值,现在要做的就是把这sha转换到BASE30,
然后前面附加”AXX”就行了。新建一个py文件,转换代码如下:
代码:
realcode='55DF6297CE47296C1916'
act30=BaseConvert(realcode,BASE16,BASE30)
while len(act30) < 17:act30 = '1' + act30
这里的BaseConvert函数是从c:\crack\src\wingutils\textutils.py中拷贝来的。运行一下这个py,得到:
act30=”1X8TBXQFVWRYLBDKB”
所以激活码是AXX1X8TBXQFVWRYLBDKB
6.注册机的制作
进入sub_10001020,算法非常简单,不多说了,直接上注册机
CalcActivationCode.rar .
注册机是个python源代码文件,没有使用任何附加库,直接可以跑
使用时,编辑下RequestCode就行了
看下效果吧
点击图片以查看大图图片名称:	5.png查看次数:	71文件大小:	63.1 KB文件 ID :	84918 *转载请注明来自看雪论坛@PEd

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496973.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度|麦肯锡176页报告!解读数字中国领先全球的秘密

来源&#xff1a; 前瞻产业研究院2017年12月4日&#xff0c;麦肯锡发布了长达176页的中国数字经济报告。报告显示&#xff0c;中国电子商务&#xff08;2016年交易额占全球40%&#xff09;和数字支付&#xff08;2016年个人消费交易额交易额7900亿美元&#xff0c;是美国的11倍…

浅谈Springboot默认logger函数的使用

目录 前言1. logger日志2. 补充 前言 原先写过一篇logger日志函数的总结&#xff0c;不同的引用来源&#xff1a;java常见log日志的使用方法详细解析 但是为了不引入依赖包&#xff0c;更好的直接使用&#xff0c;总结了如下博文 1. logger日志 Spring Boot使用Spring框架中…

find 和 xargs 和 locate

Linux 中 find 常见用法示例&#xff1a;http://blog.csdn.net/freeking101/article/details/51203183 1. find 命令选项。 find 命令的一般形式为&#xff1a;find pathname -options [-print -exec -ok] find 命令的参数&#xff1a; pathname find 命令所查找的目录路径。…

用互联网大脑架构预测2018年四个科技发展趋势

作者&#xff1a;互联网进化论作者&#xff0c;刘锋博士从本世纪处开始&#xff0c;随着人工智能&#xff0c;物联网&#xff0c;大数据&#xff0c;云计算&#xff0c;机器人&#xff0c;虚拟现实&#xff0c;工业互联网等科学技术的蓬勃发展&#xff0c;互联网类脑智能巨系统…

利用DAAB 获取存储过程返回值的方法

方法一 publicstaticAdoHelper helper AdoHelper.CreateHelper("sqlDA"); publicstaticstringcs WebConfigurationManager.AppSettings["SqlServerConnectionString"]; protectedvoidPage_Load(objectsender, EventArgs e) { IDataP…

骗子、假先知们一夜暴富背后:区块链是回归互联网本来意义的唯一希望|深度

文章转载于微信公众号机器之能&#xff08;ID&#xff1a;almosthuman2017&#xff09;来源&#xff1a;纽约时报杂志 编译&#xff1a;张震、Edison、Rik“编者按”&#xff1a;纽约时报的这篇区块链文章探讨到核心的问题了&#xff0c;互联网应用层分布式架构&#xff08;区块…

css 中 float 和 clear 的作用

相当于原来的 align 的作用&#xff0c;但能力要比 align 强的多。一旦发出float:left或float:right命令&#xff0c;被我浮动的对像就会向左或向右移动直到遇到边框( border) 、填充( padding&#xff09; 、边界( margin &#xff09;或者另一个块对象的边缘为止。 经典样式&…

深度解读:深度学习在IoT大数据和流分析中的应用

来源&#xff1a;网络大数据&#xff08;ID:raincent_com&#xff09;摘要&#xff1a;这篇论文对于使用深度学习来改进IoT领域的数据分析和学习方法进行了详细的综述。在物联网时代&#xff0c;大量的感知器每天都在收集并产生着涉及各个领域的数据。由于商业和生活质量提升方…

区块链行业报告|从交易流程到Token经济的全方位解析

来源&#xff1a;36氪研究院作者&#xff1a;孔德云 36氪研究院 分析师中国人在干嘛&#xff1f;首先&#xff0c;目前我国区块链项目只占到了全球的4.6%&#xff0c;相比之下&#xff0c;美国占了36%。由于大环境因素&#xff0c;通过ICO的形式&#xff0c;真正找到落地场景…

ps 命令详解

From&#xff1a;http://blog.chinaunix.net/uid-25681671-id-3201927.html 进程和作业管理命令&#xff1a;http://man.linuxde.net/sub/进程和作业管理 Linux 关于 进程/线程 的命令 kill 和 pgrep 和 pidof 和 awk 和 pkill 和 killall&#xff1a;https://blog.csdn.net…

中国将对人工智能、云计算等行业独角兽IPO即报即审

来源&#xff1a;21世纪经济报道摘要&#xff1a;2月28日下午&#xff0c;有媒体报道称监管层对券商作出指导&#xff0c;包括生物科技、云计算在内的四个行业若有“独角兽”&#xff0c;立即向发行部报告&#xff0c;符合相关规定者可以实行“即报即审”。2月28日下午&#xf…

5G的风头盖过了AI,英特尔展示未来四大应用场景 | MWC2018

来源&#xff1a;36Kr摘要&#xff1a;英特尔公司网络平台事业部副总裁Alex Quach在接受采访时表示&#xff0c;5G已经从实验室带到了实时现场。事实上&#xff0c;在MWC2018现场&#xff0c;英特尔则直接展示了5G网络未来可以落地的场景。5G去哪儿&#xff1f;去年MWC现场&…

SQL Server的游标

SQL中的游标&#xff0c;可以用在过程或者作业中。 Declareeventidvarchar(50) Declarecur_name cursorforselect--Selectxxxxxxxx --定义游标 opencur_name --打开游标 fetchnextfromcur_name intoeventid--将name字段存到name变量中 whilefetch_status0--执行成功 begin--其他…

腾讯首席战略官詹姆斯: 从互联网信息的永久性和稀缺性看腾讯的投资逻辑

腾讯首席战略官詹姆斯•米切尔&#xff08;James Mitchell&#xff09;来源&#xff1a;腾讯大学摘要&#xff1a;据不完全统计&#xff0c;2017年腾讯在全球投资了超过100家公司。每一年&#xff0c;腾讯生态圈的CEO们都会聚在一起分享最前沿的行业思考。据不完全统计&#xf…

全程中文!谷歌发布机器学习速成课,完全免费

夏乙 若朴 发自 凹非寺量子位 出品 | 公众号 QbitAIGoogle今天上线了一个“机器学习速成课程”&#xff0c;英文简称MLCC。用他们自己的话来形容&#xff0c;这个课程节奏紧凑、内容实用。听完这个课程总共需要大约15小时&#xff0c;包含大量教学视频&#xff0c;还有对算法实…

C++学习之路 | PTA乙级—— 1039 到底买不买 (20 分)(精简)

1039 到底买不买 (20 分) 小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串&#xff0c;但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下&#xff0c;某串珠子里是否包含了全部自己想要的珠子&#xff1f;如果是&#xff0c;那么告诉她有多少多…

Yoshua Bengio团队最新强化学习研究:智能体通过与环境交互,「分离」变化的独立可控因素

原文来源&#xff1a;arXiv作者&#xff1a;Valentin Thomas、Emmanuel Bengio∗、William Fedus、Jules Pondard、Philippe Beaudoin、Hugo Larochelle、Joelle Pineau、Doina Precup、Yoshua Bengio「雷克世界」编译&#xff1a;嗯~阿童木呀人们普遍认为&#xff0c;一个良好…

supervisor安装和配置

supervisor 是由python语言编写、基于linux操作系统的一款服务器管理工具&#xff0c;用以监控服务器的运行&#xff0c;发现问题能立即自动预警及自动重启等功能。 Supervisor是一个进程管理工具&#xff0c;官方的说法 用途就是有一个进程需要每时每刻不断的跑&#xff0c;但…

斯坦福联合DeepMind提出将「强化学习和模仿学习」相结合,可实现多样化机器人操作技能的学习

原文来源&#xff1a;arXiv作者&#xff1a;Yuke Zhu、Ziyu Wang、Josh Merel、Andrei Rusu、Tom Erez、Serkan Cabi、Saran Tunyasuvunakool、Janos Kram ar、Raia Hadsell、Nando de Freitas、Nicolas Heess「雷克世界」编译&#xff1a;嗯~阿童木呀我们提出了一种无模型的深…

大型传统企业如何向人工智能转型?

来源&#xff1a;FT中文网在新一波技术浪潮的冲击下&#xff0c;以AI、大数据、云计算、物联网、5G通信等一系列技术为代表的“技术簇”所引发的革命对人类社会的影响将是全面且深刻的。每一个商业单元都面对这样的机遇&#xff1a;能否通过对新技术的运用&#xff0c;为客户创…