perimeterx loader (walmart tenant)
[ok]https://www.walmart.com/px/PXu6b0qd2S/init.js ↗
- last ran
- 2026-05-19 22:32 utc
- (2d ago)
- last updated
- 2026-05-15 04:51 utc
- (6d ago)
- size
- 324.4kb
- sha256
- a6e46ad4a900
- apis touched
- 440
- 440 raw
- bot tells
- 81
- sinks
- 13
- 0 leaked
- hazards
- 24
- structural
- 0
- anti-debug
- 0
- L3/L4 hazards
- consistency
- 0
- cross-checks
- providers
- 0
categories probed (19)
click a row to drill into every api the script probes in that category.
[+] webgl
18 apis · 4 tells · 38 hits[+] *.getContexthigh · bot-tell×6
details + source hits (6)
[+] *.getParameterhigh · bot-tell×2
details + source hits (2)
[+] *.getExtensionhigh · bot-tell×1
details + source hits (1)
[+] *.getSupportedExtensionshigh · bot-tell×1
details + source hits (1)
[+] *.getExtensionmedium×4
details + source hits (4)
[+] *.compileShadermedium×2
details + source hits (2)
[+] *.shaderSourcemedium×2
details + source hits (2)
[+] *.getShaderPrecisionFormatmedium×1
details + source hits (1)
[+] *.createProgramlow×2
details + source hits (2)
[+] *.createShaderlow×2
details + source hits (2)
[+] *.linkProgramlow×2
details + source hits (2)
[+] *.useProgramlow×2
details + source hits (2)
[+] *.bindBufferinfo×3
details + source hits (3)
[+] *.bufferDatainfo×2
details + source hits (2)
[+] *.getAttribLocationinfo×2
details + source hits (2)
[+] *.getUniformLocationinfo×2
details + source hits (2)
[+] *.vertexAttribPointerinfo×1
details + source hits (1)
[+] *.viewportinfo×1
details + source hits (1)
[+] timing
9 apis · 3 tells · 49 hits[+] performance.nowmedium×7
details + source hits (7)
[+] performance.memorymedium · bot-tell×4
details + source hits (4)
[+] *.getTimezoneOffsetmedium · bot-tell×1
details + source hits (1)
[+] Date.prototype.toStringmedium · bot-tell×1
details + source hits (1)
[+] requestAnimationFramelow×3
details + source hits (3)
[+] performance.getEntriesByTypelow×2
details + source hits (2)
[+] Dateinfo×28
details + source hits (28)
[+] Date.nowinfo×2
details + source hits (2)
[+] *.getFullYearinfo×1
details + source hits (1)
[+] audio
4 apis · 3 tells · 5 hits[+] *.getChannelDatahigh · bot-tell×2
details + source hits (2)
[+] *.createDynamicsCompressorhigh · bot-tell×1
details + source hits (1)
[+] *.startRenderinghigh · bot-tell×1
details + source hits (1)
[+] *.createOscillatormedium×1
details + source hits (1)
[+] headless-tells
3 apis · 3 tells · 15 hits[+] processhigh · bot-tell×8
details + source hits (8)
[+] Bufferhigh · bot-tell×2
details + source hits (2)
[+] globalmedium · bot-tell×5
details + source hits (5)
[+] math
8 apis · 2 tells · 24 hits[+] Math.logmedium×9
details + source hits (9)
[+] Math.expmedium×3
details + source hits (3)
[+] Math.log1pmedium · bot-tell×3
details + source hits (3)
[+] Math.asinhmedium×2
details + source hits (2)
[+] Math.atanhmedium · bot-tell×2
details + source hits (2)
[+] Math.acoshmedium×1
details + source hits (1)
[+] Math.sinhmedium×1
details + source hits (1)
[+] Math.sqrtlow×3
details + source hits (3)
[+] workers
5 apis · 2 tells · 12 hits[+] OffscreenCanvashigh · bot-tell×1
details + source hits (1)
[+] Workermedium · bot-tell×3
details + source hits (3)
[+] *.registermedium×1
details + source hits (1)
[+] Bloblow×5
details + source hits (5)
[+] URL.createObjectURLlow×2
details + source hits (2)
[+] document
4 apis · 2 tells · 16 hits[+] *.contentWindowhigh · bot-tell×5
details + source hits (5)
[+] document.currentScriptmedium · bot-tell×7
details + source hits (7)
[+] document.cookielow×3
details + source hits (3)
[+] document.bodyinfo×1
details + source hits (1)
[+] css
3 apis · 2 tells · 8 hits[+] *.getComputedStylehigh · bot-tell×4
details + source hits (4)
[+] getComputedStylehigh · bot-tell×2
details + source hits (2)
[+] *.matchesinfo×2
details + source hits (2)
[+] introspection
12 apis · 1 tells · 164 hits[+] Object.definePropertymedium×14
details + source hits (14)
[+] Object.getPrototypeOfmedium×10
details + source hits (10)
[+] Object.getOwnPropertyDescriptormedium · bot-tell×9
details + source hits (9)
[+] Object.getOwnPropertyDescriptorsmedium×4
details + source hits (4)
[+] *.__proto__medium×3
details + source hits (3)
[+] Object.getOwnPropertyNamesmedium×3
details + source hits (3)
[+] Object.setPrototypeOfmedium×3
details + source hits (3)
[+] Proxymedium×1
details + source hits (1)
[+] *.hasOwnPropertylow×61
details + source hits (61)
[+] *.toStringlow×36
details + source hits (36)
[+] *.constructorlow×11
details + source hits (11)
[+] Symbol.iteratorinfo×9
details + source hits (9)
[+] screen
6 apis · 1 tells · 7 hits[+] screen.widthlow×2
details + source hits (2)
[+] screen.availHeightlow×1
details + source hits (1)
[+] screen.availWidthlow×1
details + source hits (1)
[+] screen.colorDepthlow · bot-tell×1
details + source hits (1)
[+] screen.heightlow×1
details + source hits (1)
[+] screen.pixelDepthlow×1
details + source hits (1)
[+] dom-layout
6 apis · 1 tells · 16 hits[+] *.getClientRectsmedium×3
details + source hits (3)
[+] *.elementFromPointmedium · bot-tell×1
details + source hits (1)
[+] *.getBoundingClientRectmedium×1
details + source hits (1)
[+] *.observeinfo×5
details + source hits (5)
[+] PerformanceObserverinfo×4
details + source hits (4)
[+] MutationObserverinfo×2
details + source hits (2)
[+] events
5 apis · 1 tells · 30 hits[+] *.movementXmedium · bot-tell×1
details + source hits (1)
[+] *.movementYmedium×1
details + source hits (1)
[+] *.dispatchEventlow×1
details + source hits (1)
[+] *.timeStamplow×1
details + source hits (1)
[+] *.addEventListenerinfo×26
details + source hits (26)
[+] navigator
4 apis · 1 tells · 5 hits[+] *.userActivationhigh · bot-tell×1
details + source hits (1)
[+] navigator.userAgentDatamedium×1
details + source hits (1)
[+] navigator.userAgentlow×2
details + source hits (2)
[+] navigator.platformlow×1
details + source hits (1)
[+] canvas
3 apis · 1 tells · 10 hits[+] *.toDataURLhigh · bot-tell×2
details + source hits (2)
[+] *.fillTextmedium×4
details + source hits (4)
[+] *.fillinfo×4
details + source hits (4)
[+] media
2 apis · 1 tells · 5 hits[+] Notification.permissionmedium · bot-tell×1
details + source hits (1)
[+] crypto.getRandomValuesinfo×4
details + source hits (4)
[+] speech
1 apis · 1 tells · 3 hits[+] *.getVoiceshigh · bot-tell×3
details + source hits (3)
[+] storage
3 apis · 0 tells · 22 hits[+] *.keyslow×13
details + source hits (13)
[+] localStoragelow×8
details + source hits (8)
[+] *.estimatelow×1
details + source hits (1)
[+] fonts
1 apis · 0 tells · 1 hits[+] FontFacemedium×1
details + source hits (1)
[+] window
1 apis · 0 tells · 10 hits[+] location.hrefinfo×10
details + source hits (10)
bot-detection tells (29)
strong indicators of bot-detection intent. drill into the categories section below to inspect description, evasion notes, and source snippets for any tell.
- process ×8
- *.getContext ×6
- *.contentWindow ×5
- *.getComputedStyle ×4
- *.getVoices ×3
- *.getChannelData ×2
- *.toDataURL ×2
- getComputedStyle ×2
- Buffer ×2
- *.getParameter ×2
- *.createDynamicsCompressor ×1
- *.startRendering ×1
- *.userActivation ×1
- *.getExtension ×1
- *.getSupportedExtensions ×1
- OffscreenCanvas ×1
- Object.getOwnPropertyDescriptor ×9
- document.currentScript ×7
- global ×5
- performance.memory ×4
- Math.log1p ×3
- Worker ×3
- Math.atanh ×2
- *.elementFromPoint ×1
- *.movementX ×1
- Notification.permission ×1
- *.getTimezoneOffset ×1
- Date.prototype.toString ×1
- screen.colorDepth ×1
network sinks (13)
every place the script could ship data off the page. expand a row to see headers and the traced payload entries.
[+] xhrfc+sno leaks
url source · fc+s
location · L2:60258
headers
- Content-Type: text/plain;charset=UTF-8
h.send()
[+] xhrGET fc+ano leaks
url source · fc+a
location · L2:62360
c.send()
[+] navigationGET hj(eP.href,t,n)no leaks
url source · hj(eP.href,t,n)
location · L3:48552
eP.href=hj(eP.href,t,n)
[+] xhr<dynamic>no leaks
location · L3:51750
r.send()
[+] workerGET (c=ak(<~F$VU'9f)~><&85dBPL-module/fromno leaks
location · L3:70801
new Worker(e)
[+] workerGET no leaks
location · L3:71306
new Worker(i)
[+] xhrGET (c=ak(<~F$VU'9f)~><&85dBPL-module/fromno leaks
location · L4:6862
i.send()
[+] xhrGET fc+ano leaks
url source · fc+a
location · L4:9908
payload · shape string
- <body>: literal
l
c.send(l)
[+] xhrGET fc+ano leaks
url source · fc+a
location · L5:31266
payload · shape string
- <body>: r.yn
r.yn
c.send(r.yn)
[+] xhrGET document.location.hrefno leaks
url source · document.location.href
location · L5:88794
t.send()
[+] image-srcGET https://b.px-cdn.net/api/v1no leaks
location · L5:90356
(new Image).src=ba
[+] fetchPOST no leaks
location · L6:4870
payload · shape string
- <body>: literal 0
o
fetch(r,{method:"POST",mode:"no-cors",body:o,keepalive:!0})[+] image-srcGET ('https://collector-a.px-cloud.net') + '/api/v2/collector/clientError?r=' + encodeURIComponent('{"appId":"' + (window._pxAppId || '') + '","tag":"eW5CaD8AUB99Zg==","name":"' + e.name + '","line":"' +…no leaks
url source · ('https://collector-a.px-cloud.net') + '/api/v2/collector/clientError?r=' + encodeURIComponent('{"appId":"' + (window._pxAppId || '') + '","tag":"eW5CaD8AUB99Zg==","name":"' + e.name + '","line":"' +…
location · L6:11399
new Image().src = ('https://collector-a.px-cloud.net') + '/api/v2/collector/clientError?r=' + encodeURIComponent('{"appId":"' + (window._pxAppId || '') + '","tag":"eW5CaD8AUB99Zg==","name":"' + e.nam…
dynamic-execution hazards (24)
anywhere the script puts code beyond static reach. eval, function, document.write, dynamic import. these are the holes script2builtins-runtime would fill.
- FunctionL2:23819
`new Function` constructor compiles a string into a function. common eval-equivalent in fingerprinting blobs.
new Function("return this") - with-statementL2:72478
`with` blocks dynamically scope identifier resolution; static analysis cannot follow accesses inside.
with(eP.h||eP)switch(eL+eN+eO){case eN- -202:return eM=!0,eI[eG[0]];case eP.j.n+233:default:case 138:if(MV=[-103,27,-22… - FunctionL2:81987
`new Function` constructor compiles a string into a function. common eval-equivalent in fingerprinting blobs.
new Function("return this") - setTimeout-stringL3:5181
`setTimeout` called with a string argument is an eval-equivalent.
setTimeout(e,50)
- with-statementL3:14698
`with` blocks dynamically scope identifier resolution; static analysis cannot follow accesses inside.
with(eP.x||eP)switch(eL+eN+eO){case eN- -272:case 72:for(eP.y.A=-208,eG[2]=-(eL+-232),eG.b=0;eG.b<eG[eL+-232][eK(eL+-17… - with-statementL3:15841
`with` blocks dynamically scope identifier resolution; static analysis cannot follow accesses inside.
with(eX.J||eX)switch(eQ+eW+eP){case-94:return void(eR=!0);default:case eP-130:case-193:if(Ni=[-231,-205],eX.K.Q=Ni[0],e… - with-statementL3:17904
`with` blocks dynamically scope identifier resolution; static analysis cannot follow accesses inside.
with(eO.Z||eO)switch(eL+eN){default:case-56:case 114:clearInterval(qa),eG[-38]=(Nm={},Nm[eK(eL+685)]=pV,Nm),eG[0]("fgUF… - with-statementL3:37324
`with` blocks dynamically scope identifier resolution; static analysis cannot follow accesses inside.
with(eR.ap||eR)switch(eM+eO+eP+eQ){case eP- -321:return NL=[18,-6],eR.aq.ax=NL[0],eR.aq.ay=NL[1],void(eN=!0);case eM- -… - with-statementL3:44171
`with` blocks dynamically scope identifier resolution; static analysis cannot follow accesses inside.
with(eR.aI||eR)switch(eG+eN+eP+eQ){case 248:if(eR.aJ.aO=193,eM.length=eN+-180,eM[0]&&eM[eP+-91][eK(216)]){eR.aI=eR.aJ,e… - with-statementL3:45171
`with` blocks dynamically scope identifier resolution; static analysis cannot follow accesses inside.
with(eO.aW||eO)switch(eK+eN){default:case-21:return eM=!0,aZ.do||aZ.ob;case 4:Ob=[180,27],eO.aX.bb=Ob[0],eO.aX.bc=Ob[1]… - with-statementL3:46690
`with` blocks dynamically scope identifier resolution; static analysis cannot follow accesses inside.
with(eO.bk||eO)switch(eL+eN){case-164:case eL- -208:case 45:if(Of=[234,-237],eO.bl.bo=Of[0],eO.bl.bp=Of[1],eG[2]=vz[eK(… - evalL3:48237
`eval` runs arbitrary source at runtime. content is invisible to static analysis.
vx(eG[2])
- with-statementL3:48007
`with` blocks dynamically scope identifier resolution; static analysis cannot follow accesses inside.
with(eP.by||eP)switch(eL+eN+eO){case eO- -50:eP.bz.bB=118,eG.length=3,eG[-25]={},eP.by=eP.bz,eN+=81,eO+=251;break;case … - with-statementL3:73570
`with` blocks dynamically scope identifier resolution; static analysis cannot follow accesses inside.
with(eO.bJ||eO)switch(eL+eN){case 306!=eN&&eN-150:eO.bK.bM=(kp(kf[hK])||"2,10").split(",")[eK(eL+897)]((function(e){ret… - with-statementL3:77062
`with` blocks dynamically scope identifier resolution; static analysis cannot follow accesses inside.
with(eP.ca||eP)switch(eL+eM+eN){default:eP.cb.cf=163,cb.cc=mR(),cb.cd=lp(),eP.ca=eP.cb,eL+=-193,eM+=122,eN+=-8;break;ca… - with-statementL3:85144
`with` blocks dynamically scope identifier resolution; static analysis cannot follow accesses inside.
with(eO.cp||eO){if(eG+eM+eN===eO.cq.cv+236)return eL=!0,cr;eO.cq.cv=-42,cq.cr=[];try{if(cq.cs=eP.ancestorOrigins,eP[eK(… - with-statementL3:86465
`with` blocks dynamically scope identifier resolution; static analysis cannot follow accesses inside.
with(eN.cD||eN){OA=[-194,6,125],eN.cE.cH=OA[0],eN.cE.cI=OA[1],eN.cE.cJ=OA[2],cE.cF=!1;try{cE.cG=new Audio,cE.cG&&eL(cE.… - with-statementL3:87105
`with` blocks dynamically scope identifier resolution; static analysis cannot follow accesses inside.
with(eN.cR||eN)switch(eG+eM){case 236!=eG&&52!=eG&&eG-14:eN.cS.cY=-112,eN.cR=eN.cW,eG+=366,eM+=-151;break;case-244:case… - with-statementL3:87965
`with` blocks dynamically scope identifier resolution; static analysis cannot follow accesses inside.
with(eP.di||eP)switch(eG+eM+eN+eO){case eM- -2:return void(eL=!0);case eP.dj.dn+55:return eP.dj.dl=mb[eK(eN+69)]-(eN+-1… - with-statementL4:10511
`with` blocks dynamically scope identifier resolution; static analysis cannot follow accesses inside.
with(eP.dx||eP)switch(eM+eO){default:case-219:eP.dy.dz=111,eG.length=2;try{if(eL(eG[1])===eY&&(Cg=eG[1]),eL(eG[0])===eY… - with-statementL4:11186
`with` blocks dynamically scope identifier resolution; static analysis cannot follow accesses inside.
with(eQ.dJ||eQ)switch(eL+eN+eO+eP){case eQ.dK.dP+-2:return OW=[125,216,181],eQ.dK.dP=OW[0],eQ.dK.dQ=OW[1],eQ.dK.dR=OW[2… - with-statementL4:14372
`with` blocks dynamically scope identifier resolution; static analysis cannot follow accesses inside.
with(eR.ea||eR)switch(eM+eP+eQ){case 69:case-56:Pf=[-120,-207],eR.eb.ee=Pf[0],eR.eb.ef=Pf[1],eL.length=eP+184,eL[27]=eN… - with-statementL4:16849
`with` blocks dynamically scope identifier resolution; static analysis cannot follow accesses inside.
with(eW.eo||eW)switch(eL+eQ+eR){case eQ-43:case-124:eW.ep.er=101,eG.length=1,eG.a=eG[eQ+-159].brands,eG[2]=eG[0][eK(eL+… - with-statementL4:18878
`with` blocks dynamically scope identifier resolution; static analysis cannot follow accesses inside.
with(eP.eA||eP)switch(eK+eN+eO){default:case eO-17:if(eP.eB.eE=92,Cj){eK+=228,eN+=68,eO+=19;break}eK+=84,eN+=-83,eO+=40…