js加密/解密关于大文件js代码申明

在这里插入图片描述

前言

最近有几位朋友拿着那种超过5k行的甚至10w行的代码来找我人工js解密,这之间可能有一些误会之类的,想在这里申明一下大文件加密的难点和难处。

贴部分代码

var _0x5f58=["changeColorAxis","changeColorSphere","zAxisDown","ashen","sphereYDown","defaultPosition","tilesetInverse","middleLineX","middleLineY","tileCenter","totalY","planeRotateMat","matY","planePosition","rotationX","rotationY","initClippingPlane","setRotateX","matX","setRotateY","totalX","getRotateX","getRotateY","setPlanePosition","translateAxis","setClipping","axisZ-arrow","rotateLineY","rotateLineX","selectLine","resetDefaultColor","moveHouse","CLIPPING_ROTATE","axisZ-line","axisX-line","axisY-line","ClippingPlaneCollection","ClippingPlane","PlaneGeometry","del","createMiddleLine","_headWidth","headWidth","_headLength","_inverse","_length","-arrow","reflectivity","llhPosition","propertKeys","createWater","_createGeoJsonFile","deep","self","destroyAppearance","_createGeoJsonWater","_primitives","setAmplitude","setRipple","setDistortion","setShowMirror","getWaterMsg","geoJsonInstance","editState","polylineColor","pointOutlineColor","_createWaterArea","addWaterByOption","waterInstance","WATER_DATA","geojsonFilterKeys","createKeyPoint","createPolyLine","water_polyline","initMouseHandler","loadGeojson","static/json/geojson/river.geojson","getWaterInstance","removeWaterInstance","flyToWater","_removeWater","setAnimationSpeed","setReflectivity","getWaterMsgById","endDraw","editWater","endEditWater","bottomPosition","resetPosition","tilesetTransform","boxRotateMat","rotateMatClip","clippingPosition","rotateClipY","rotateClipZ","xAngle","yAngle","leftDownColor","showTag","rotateCenter","centerOffset","drawBox","initModelMatrix","getDistanceX","drawClippingPlane","getDistanceY","unionClippingRegions","removeClippingBox","boxPositions","bottom-polygon","top-polygon","left-wall","right-wall","before-wall","beforeColor","after-wall","afterColor","PolygonOutlineGeometry","showPrimitive","removeBox","changeDeep","changeHeight","editBoxDeep","topColor","createClipping","movePoint","bottomColor","resetColor","leftColor","rightColor","moveLeftPlane","moveRightPlane","moveAfterPlane","translateClipping","resetAtti","rotateClippingBox","movePositions","rotateClipX","zAngle","getBoxColor","getBoxOutlineColor","getChangeColor","setBoxColor","setBoxOutlineColor","setChangeColor","getCenterPosition","getPolygonPosition","createDefalutBox","posPolygon","showBox","changeDeepState","selectPlane","typeId","moveAllState","editBoxHeight","moveBeforePlane","changeMoveAllState","_lightPosition","_lightType","_brightness","_spotLightFov","_lightColor","_lightDirection","_packedLightInformations","lightType","POINT_LIGHT","lightPosition","_decreaseFactor","decreaseFactor","spotLightFov","fromSpecialLightOptions","packedLightInformations","lightColor","PARALLEL_LIGHT","uComponent","vComponent","_calcUV","getIn","_bilinearInterpolation","isInBound","tlng","tlat","canvasContext","speedRate","particlesNumber","frameTime","calc_speedRate","animateFrame","isdistory","globalExtent",.............................oid 0),this[_0xd155("0x33cd")](d,void 0),this[_0xd155("0x33c9")].setSynchronObject(this[_0xd155("0x33c1")],this[_0xd155("0x33c2")])}[_0xd155("0x33cf")](){return this[_0xd155("0x33c1")]}getEarthObject(){return this._fe3DEarth}[_0xd155("0x1910")](x){this[_0xd155("0x33c9")]&&this[_0xd155("0x33c9")].setSynchronizeViewState(x)}getSynchronizeViewState(){return!!this._viewSynchronizer&&this[_0xd155("0x33c9")][_0xd155("0xe53")]()}destroy(){this[_0xd155("0x33c9")][_0xd155("0x1f")](),this[_0xd155("0x33c2")][_0xd155("0x1f")](),this[_0xd155("0x33c1")][_0xd155("0x1f")](),Object(Px.a)(this)}}var Ah=jh;Object[_0xd155("0x1d6")](window,{FreeXIntegrated:n,FreeXEarth:_,FreeXMap:Cx,FreeXCommon:e})}])}));

总计约摸有十万行,解密后体积会大幅度缩减。

关于大体积js文件的难点

1.语法模糊

很多js加密后,会故意打乱语法,用不常见的语法,不规则的语法,使得代码稍微变动一下就变得不可运行,或者运行到了错误的路径上,这是很常见的错误,而这种问题非常考验js解密人员的基本功,需要仔细排查。而大体积的文件,动辄几万行,在其中想要找到问题无异于大海捞针。解密起来也就格外困难,因为我们解密不光要保证可阅读,还要保证解密后丢回去无异常无报错无功能丢失,这是很重要的。

2.异常环环相扣

部分js解密后,会发现有一些异常,跟着这个异常走下去会发现,因为这个异常又导致了另外一个异常,最终没完没了找不到源头,可又不死心,好像源头真的就在下一个异常里等着你,只要处理完下一个就正常了。然后还有一些异常他是循环的,头尾相连。。。

3.代码优化和模块化

对 JavaScript 代码进行优化和模块化设计,减少代码复杂性,提高代码的可维护性和可扩展性。

4.优化解密算法

选择高效的解密算法,以减少解密过程中的计算消耗。可以考虑使用硬件加速或并行处理来提高解密性能。

5.安全加固

加强对解密过程的安全控制,采用加密通信和安全认证机制,防止恶意攻击和信息泄露。防止代码中有异常有危害的代码。

结语

有很多客户都是因为自己的站被挂了一些恶意代码,但是代码又加了密,无奈找到我们解密进行分析。

其实我们也提供人工分析的业务,只是比解密更贵一些更耗时一些,有需要的直接找我们处理一步到位也是可以的。

关于js有关的业务都是可以的。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值