Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
P
px3
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangmingming
px3
Commits
a6b8d690
Commit
a6b8d690
authored
Dec 30, 2023
by
wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update 8.7.8
parent
cfb23998
Changes
11
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
15853 additions
and
21871 deletions
+15853
-21871
decode2.js
ast/decode2.js
+42
-135
decodeResult22.js
ast/decodeResult22.js
+7868
-7847
main.js
ast/main.js
+1
-5974
main_ok.js
ast/main_ok.js
+7905
-7882
index.html
index.html
+3
-3
all.js
src/all.js
+18
-17
captcha.js
src/captcha.js
+2
-2
pxenvutils.js
src/pxenvutils.js
+1
-1
run.js
src/run.js
+6
-5
test.py
test.py
+5
-2
test_url.py
test_url.py
+2
-3
No files found.
ast/decode2.js
View file @
a6b8d690
...
...
@@ -272,7 +272,7 @@ function i(n) {
u
=
o
[
n
];
}
else
{
for
(
var
c
=
a
(
n
),
u
=
""
,
f
=
0
;
f
<
c
[
"length"
];
++
f
)
{
var
s
=
"
epvWEbf
"
[
"charCodeAt"
](
f
%
7
);
var
s
=
"
H6bJaHJ
"
[
"charCodeAt"
](
f
%
7
);
u
+=
String
[
"fromCharCode"
](
s
^
c
[
"charCodeAt"
](
f
));
}
o
[
n
]
=
u
;
...
...
@@ -281,47 +281,47 @@ function i(n) {
}
traverse
(
ast
,
{
FunctionDeclaration
(
path
)
{
let
{
id
,
body
}
=
path
.
node
;
if
(
id
.
name
!==
'J'
)
return
;
let
binding
=
path
.
parentPath
.
scope
.
getBinding
(
id
.
name
)
console
.
log
(
id
.
name
,
binding
.
references
)
for
(
const
referencePath
of
binding
.
referencePaths
)
{
// console.log(generator(referencePath.parent).code, referencePath.parent.type)
if
(
types
.
isVariableDeclarator
(
referencePath
.
parent
))
{
let
idName
=
referencePath
.
parent
.
id
.
name
;
getBinding
(
referencePath
.
scope
,
idName
,
function
(
p
)
{
if
(
types
.
isCallExpression
(
p
.
parent
))
{
let
arguments
=
p
.
parent
.
arguments
;
if
(
arguments
.
length
!==
1
)
return
try
{
let
res
=
J
(
arguments
[
0
].
value
);
if
(
res
===
'PX12571'
)
debugger
;
p
.
parentPath
.
replaceWith
(
types
.
valueToNode
((
res
)))
}
catch
(
e
)
{
// console.error(generator(p.parent).code)
}
}
})
}
else
if
(
types
.
isCallExpression
(
referencePath
.
parent
))
{
let
arguments
=
referencePath
.
parent
.
arguments
;
if
(
arguments
.
length
!==
1
)
continue
try
{
let
res
=
U
(
arguments
[
0
].
value
);
referencePath
.
parentPath
.
replaceWith
(
types
.
valueToNode
((
res
)))
}
catch
(
e
)
{
// console.error(generator(p.parent).code)
}
}
}
}
})
//
traverse(ast, {
//
FunctionDeclaration(path) {
//
let {id, body} = path.node;
//
if (id.name !== 'J') return;
//
let binding = path.parentPath.scope.getBinding(id.name)
//
console.log(id.name, binding.references)
//
for (const referencePath of binding.referencePaths) {
//
// console.log(generator(referencePath.parent).code, referencePath.parent.type)
//
if (types.isVariableDeclarator(referencePath.parent)) {
//
let idName = referencePath.parent.id.name;
//
getBinding(referencePath.scope, idName, function (p) {
//
if (types.isCallExpression(p.parent)) {
//
let arguments = p.parent.arguments;
//
if (arguments.length !== 1) return
//
try {
//
let res = J(arguments[0].value);
//
if (res === 'PX12571') debugger;
//
p.parentPath.replaceWith(types.valueToNode((res)))
//
} catch (e) {
//
// console.error(generator(p.parent).code)
//
//
}
//
}
//
//
})
//
//
} else if (types.isCallExpression(referencePath.parent)) {
//
let arguments = referencePath.parent.arguments;
//
if (arguments.length !== 1) continue
//
try {
//
let res = U(arguments[0].value);
//
referencePath.parentPath.replaceWith(types.valueToNode((res)))
//
} catch (e) {
//
// console.error(generator(p.parent).code)
//
//
}
//
}
//
//
}
//
}
//
})
// U
...
...
@@ -411,100 +411,7 @@ traverse(ast, {
})
//end
console
.
timeEnd
(
"处理完毕,耗时"
);
function
isNodePure
(
node
,
scope
)
{
if
(
types
.
isLiteral
(
node
))
{
return
true
;
}
return
false
if
(
types
.
isUnaryExpression
(
node
))
{
return
isNodePure
(
node
.
argument
,
scope
)
}
if
(
types
.
isIdentifier
(
node
))
{
//处理 var c = String;
if
(
scope
&&
scope
.
isPure
(
node
,
true
))
{
return
true
;
}
if
(
typeof
this
[
node
.
name
]
!=
'undefined'
)
{
return
true
;
}
return
false
;
}
if
(
types
.
isMemberExpression
(
node
))
{
//处理 var d = String.fromCharCode;
let
{
object
,
property
,
computed
}
=
node
;
if
(
computed
&&
!
isNodePure
(
property
,
scope
))
{
return
false
;
}
if
(
isNodePure
(
object
,
scope
))
{
return
true
;
}
if
(
types
.
isIdentifier
(
object
))
{
let
name
=
object
.
name
;
if
(
typeof
this
[
name
]
!=
'undefined'
&&
name
!=
'window'
)
{
//注意object为window时,可能会还原出错
return
true
;
}
return
false
;
}
if
(
types
.
isMemberExpression
(
object
))
{
return
isNodePure
(
object
,
scope
);
}
return
false
;
}
if
(
types
.
isBinary
(
node
)
&&
scope
)
{
return
isNodePure
(
node
.
left
,
scope
)
&&
isNodePure
(
node
.
right
,
scope
);
}
return
false
;
}
const
restoreVarDeclarator
=
{
VariableDeclarator
(
path
)
{
let
scope
=
path
.
scope
;
let
{
id
,
init
}
=
path
.
node
;
if
(
!
init
&&
(
!
types
.
isNumericLiteral
(
init
)
||
!
types
.
isStringLiteral
(
init
)))
return
if
(
id
.
name
===
'c'
&&
init
.
value
===
0
)
return
if
(
!
types
.
isIdentifier
(
id
)
||
!
isNodePure
(
init
,
scope
))
{
return
;
}
const
binding
=
scope
.
getBinding
(
id
.
name
);
try
{
var
{
constant
,
referencePaths
,
constantViolations
}
=
binding
;
//变量的定义一定会有binding.
}
catch
(
e
)
{
return
;
}
if
(
constantViolations
.
length
>
1
)
{
return
;
}
if
(
init
.
name
===
'i'
)
return
if
(
constant
||
constantViolations
[
0
]
==
path
)
{
for
(
let
referPath
of
referencePaths
)
{
// console.log(init.value)
// console.log(id.name, referPath.type, generator(referPath.container).code, generator(init).code)
referPath
.
replaceWith
(
init
);
}
// console.log(path.toString())
// path.remove();//没有被引用,或者替换完成,可直接删除
}
},
}
traverse
(
ast
,
restoreVarDeclarator
)
let
{
code
}
=
generator
(
ast
,
opts
=
{
jsescOption
:
{
"minimal"
:
true
}});
...
...
ast/decodeResult22.js
View file @
a6b8d690
This diff is collapsed.
Click to expand it.
ast/main.js
View file @
a6b8d690
This diff is collapsed.
Click to expand it.
ast/main_ok.js
View file @
a6b8d690
This diff is collapsed.
Click to expand it.
index.html
View file @
a6b8d690
...
...
@@ -10,18 +10,18 @@
<body>
<script>
window
.
_pxVid
=
''
;
window
.
_pxUuid
=
'
e2cb612b-a156-11ee-85c0-8764a8ef6d46
'
;
window
.
_pxUuid
=
'
f1703b3c-a716-11ee-acc5-cae790565212
'
;
window
.
_pxAppId
=
'PXVb73hTEg'
;
window
.
_pxHostUrl
=
'https://collector-PXVb73hTEg.perimeterx.net'
;
window
.
_pxCustomLogo
=
''
;
window
.
_pxJsClientSrc
=
'//client.perimeterx.net/PXVb73hTEg/main.min.js'
;
window
.
_pxFirstPartyEnabled
=
'false'
;
var
script
=
document
.
createElement
(
'script'
);
script
.
src
=
'//captcha.perimeterx.net/PXVb73hTEg/captcha.js?a=c&u=
e2cb612b-a156-11ee-85c0-8764a8ef6d46
&v=&m=0'
;
script
.
src
=
'//captcha.perimeterx.net/PXVb73hTEg/captcha.js?a=c&u=
f1703b3c-a716-11ee-acc5-cae790565212
&v=&m=0'
;
document
.
head
.
appendChild
(
script
);
script
.
onerror
=
function
()
{
script
=
document
.
createElement
(
'script'
);
script
.
src
=
'https://captcha.px-cloud.net/PXVb73hTEg/captcha.js?a=c&u=
e2cb612b-a156-11ee-85c0-8764a8ef6d46
&v=&m=0'
;
script
.
src
=
'https://captcha.px-cloud.net/PXVb73hTEg/captcha.js?a=c&u=
f1703b3c-a716-11ee-acc5-cae790565212
&v=&m=0'
;
script
.
onerror
=
window
.
_pxDisplayErrorMessage
;
document
.
head
.
appendChild
(
script
);
};
...
...
src/all.js
View file @
a6b8d690
...
...
@@ -111,27 +111,28 @@ export function getPayload(uuid, vid, sid, ci, ts,cts, t, pxhd, appId,tag, ft, c
let
vh
=
null
;
// console.log('now', le(), JSON.stringify(t))
// for (var m = Vc(), M = 0; M < t["length"]; M++) {
// var g = t[M];
// g["d"]["PX11379"] = false;
// // if (cap){
// // m && (g["d"]["PX12307"] = m);
// // g["d"]["PX12615"] = Bu;
// // vh && (g["d"]["PX11375"] = vh);
// // var y = rl();
// // y && (g["d"]["PX11668"] = y, g["d"]["PX12348"] = sl());
// // }
//
for
(
var
m
=
Vc
(),
M
=
0
;
M
<
t
[
"length"
];
M
++
)
{
var
g
=
t
[
M
];
g
[
"d"
][
"PX11379"
]
=
false
;
// if (cap){
m
&&
(
g
[
"d"
][
"PX12307"
]
=
m
);
g
[
"d"
][
"PX12615"
]
=
Bu
;
vh
&&
(
g
[
"d"
][
"PX11375"
]
=
vh
);
var
y
=
rl
();
g
[
"d"
][
"PX11668"
]
=
'pxhc'
g
[
"d"
][
"PX12348"
]
=
false
;
// }
// !function (t) {
// t[0] && t[0]["d"] && ((t[0] && t[0]["d"])["PX11645"] = su);
// }(t);
// console.log('now', JSON.stringify(t))
}
!
function
(
t
)
{
t
[
0
]
&&
t
[
0
][
"d"
]
&&
((
t
[
0
]
&&
t
[
0
][
"d"
])[
"PX11645"
]
=
su
);
}(
t
);
console
.
log
(
'now'
,
JSON
.
stringify
(
t
))
// var A = $u();
var
A
=
ci
;
var
V
=
se
(
ht
(
t
),
function
(
t
,
e
)
{
return
[
uuid
,
t
,
e
][
'join'
](
":"
);
}(
Us
[
In
],
Us
[
Sn
]
));
}(
tag
,
ft
));
var
b
=
{
"vid"
:
vid
,
"tag"
:
Us
[
In
],
...
...
src/captcha.js
View file @
a6b8d690
...
...
@@ -24,8 +24,8 @@ log4js.configure({
});
class
PxBypass
{
tag
=
"v8.7.
2
"
ft
=
"31
7
"
tag
=
"v8.7.
8
"
ft
=
"31
8
"
appId
=
"PXVb73hTEg"
ua
=
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'
// ua = "Mozilla/5.0 (Linux; Android 10; SM-G981B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Mobile Safari/537.36";
...
...
src/pxenvutils.js
View file @
a6b8d690
...
...
@@ -75,7 +75,7 @@ function createPx1(t) {
export
function
getPX12573
(
a
,
b
,
c
)
{
let
t
=
function
(
e
,
q
,
w
)
{
return
(
e
+
13417
)
*
q
[
"charCodeAt"
](
13
);
return
(
e
*
53975
)
*
q
[
"charCodeAt"
](
27
);
// }["apply"](null, ['0III0III', 'I000I0', 'uuid'])
}[
"apply"
](
null
,
[
a
,
b
,
c
])
// console.log(t)
...
...
src/run.js
View file @
a6b8d690
...
...
@@ -27,8 +27,8 @@ async function sleep(ms) {
}
class
PxBypass
{
tag
=
"v8.7.
2
"
ft
=
"31
7
"
tag
=
"v8.7.
8
"
ft
=
"31
8
"
appId
=
"PXVb73hTEg"
ua
=
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'
...
...
@@ -145,7 +145,8 @@ class PxBypass {
let
body
=
getPayload
(
this
.
uuid
,
this
.
vid
,
this
.
sid
,
this
.
px755
,
this
.
ts
,
this
.
cts
,
data
,
undefined
,
this
.
appId
,
this
.
tag
,
this
.
ft
)
// this.log.info(body)
body
.
push
(
`seq=
${
this
.
seq
}
`
)
body
.
push
(
`rsc=
${
this
.
rsc
}
`
)
let
res
=
await
axios
.
post
(
this
.
tlsUrl
,
JSON
.
stringify
({
url
:
this
.
pxUrl
,
method
:
"POST"
,
...
...
@@ -255,8 +256,8 @@ class PxBypass {
let
data
=
[{
"t"
:
"PX12095"
,
"d"
:
{
"PX11645"
:
this
.
url
,
"PX12207"
:
0
,
"PX12458"
:
this
.
env
.
navigatorparams
.
platform
,
"PX11902"
:
0
,
"PX11560"
:
randint
(
24846
,
24846
*
2
),
"PX12248"
:
3600
,
"PX11385"
:
t1
,
"PX12280"
:
t2
,
"PX11645"
:
this
.
url
,
"PX12207"
:
1
,
"PX12458"
:
this
.
env
.
navigatorparams
.
platform
,
"PX11902"
:
0
,
"PX11560"
:
randint
(
1600
,
2600
),
"PX12248"
:
3600
,
"PX11385"
:
t1
,
"PX12280"
:
t2
,
"PX11496"
:
this
.
uuid
,
"PX12564"
:
null
,
"PX12565"
:
-
1
,
"PX11379"
:
true
}
...
...
test.py
View file @
a6b8d690
...
...
@@ -56,10 +56,13 @@ a2 = "UisrUitSHhEBDRAHHlIeAAsMAxAbHBwcHCsrKysrUh49EhpQHlFRUh4HGyhTKwgNCywYNxo4Ji
a2
=
"KysrKytSHj0SGlAeUVFSHgcbKFMrCA0LLBg3GjgmLxUvJTcWLCY7UiwbUhovNTQOLjUnFSw1MxYsNjtSODY3GiwmO1AtNjNWKwsVCwYLK1QrCAVWLBgoCy82DgsuNjNQLCYBFi82JA44MVJWLSU7Vi42Ixo4JgFSLDUwCywYJ1YvMSsRKwwzCy0IJ1AtNi8bLTYFUCwIO1AtJiMRKw8FCy0LKAs4JjALOzYjVy8IOxU7NjQPLCYzUTglOxg7UDtXLCYoDzgIMxg4NiNTLBgBUDs2N1AsNSsaLFAsCS01JA4sCCNQOwgFViwYBVIsJigOLA8vGjsYN1crDFJfHhYQFwceUVJSHBwcHFJSK1IrUh4BFxwcHBxSKysrK1JSUh49EhoGBx5RUVIeA1NQVgBaAFdXV1pXAFFWV1RRA1pTV1VQWwAAAFFWVAMDA1IHU1EHU1ZVBlQHU1oGWgBXA1VWAwZWBFFVBgZTAVgHGyhSAzVTDgFRMAoAOiMLLQgnUC02LxstNgUYLAg7UC0mIFseFhAXBx5RUlIcHBwcUisrUitSHhEBDRAHHlIeAAsMAxAb"
a2
=
"KysrKytSHj0SGlEeUVFSHlNXAFtRVQZSUwNTB1oAAAdQA1tVA1NbVFcGBFsAVlUAAFVaVlFRWlBSVVZRVwNWUwNWVVNXU1pWBFpTW1NTVltYGFRJBxAmFgcWEgENIClVLRgtUho2BCgFSVcgTQ8oLU0DNQs4DVUxLxQ3SQNRGhNVGzYbLjgsACEnLFQnGDgmDTMBMzIuUysKFFoAFScbBRFXUBgpNTNfX1hTUlJSWAAjFDEyEAMtJRQbJlYMUhcEACRaLhMuIwAUECs3LhELNRsDA1suKgQQBTE1BisAMgovE1QJKltNDyk0EQMANgQaVFI2AFBWEQg4A1UKKgc3LCcYC1NbFiYLEi84SVo6IDEBJA0HUAUaMwEQO1VTGlsaE1INFiw3A1IgFwEwFQcyWjsNAAU3DjMNNVMEVRtaBDQrNQ5UVlNJBFVJETIGMjIHBwc7JlAbMlMABDQOBCQ0NyUGLy8mIDILBjVbJQlVGw8WKCFbARgJCjQRECdQMhQtEwQDByYXKzcbECAzNBoNTSoQAVAVBilJFQ1fHhYQFwceUVJSHBwcHFIrKytSK1JSHlIcHBwcUisrKytSUlIePRIaBgceUVFSHlYBA1AHAQEBAwdXV1dWVFJVB1YBUQBRAQcHBlNbUwQEWlJXVgQGUgMAU1UBBlBaWlRXUFUGAQBVUVNRAFcGV1JYBxsoUgM1Uw4BUTAKADojCy0IJ1EvJitTLCYnVi0mK1csNg5bHhYQFwceUVJSHBwcHFJSK1IrUh4BFw=="
a2
=
"X18BAQFfEjEeFlwSXV1eEgsXJF8nBAEHIAQ4BDQqCV43Oi8aNzoNFjc9XhYjOTgCIjkoBiAUOxo0BDtfIxQ7FCMEOAQgKj9aJwcZBwoHJ1gnAzteNwQ3XSA6IAYiOStdIzoFGiM6KAI0PV5aNzovXCI6NxYjKj8WNAQrWiE6AgY3FycdJwA/ByEEK10jKiNbICo7FiMqL1sjFAkdJwMJByEHJAQjOTsZIDkoBjc6NAI3FCgHIToGByMqJxQ3OSteNAQKAjcEI183AzsZIFw3XCMEDRY3FA0XIDo4AyMDIAcgXDwHIzkoBSAqNAM0BD9aNCo3WiA5IAYnAF5TEhocGwsSXV5eEBAQEAFfAV9fXxINGw=="
b2
=
base64
.
b64decode
(
a2
.
encode
())
for
i
in
bytes
(
encrypt
(
b2
,
8
66
%
128
))
.
decode
()
.
split
(
'~~~~'
):
for
i
in
bytes
(
encrypt
(
b2
,
8
78
%
128
))
.
decode
()
.
split
(
'~~~~'
):
print
(
'o11o111o'
in
i
,
i
)
...
...
test_url.py
View file @
a6b8d690
...
...
@@ -15,8 +15,7 @@ prox = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrac
# prox = 'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:12019'
cks
=
'px2=eyJ1I11joiMGI3ZTQwZjAtYTEzYi0x23123MWVlLWE3ZTctYjU1Njk2NDc0ODExIiwidiI6IjBiZmRhMWZiLWExM2ItMTFlZS1hNDM4LTg0NTQ3ZjI1MTRhMSIsInQiOjE3MDMyOTg4NTAxNjMsImgiOiIxZjc4OTM2224YmE0OTFlMTBjNWFmMWNmYzZlMjljMTdjNGIyYzc5MDY3MTVlYjMwZmE3M2ZlYzQ0YjA0NTBkMWU0In0='
cks
=
'_pxvid=d5dfee38-a156-11ee-a3eb-5e49e31283e7; pxcts=d5e05d75-a156-11ee-a3ec-4b37e013b19d; _px2=eyJ1IjoiZDU5YjUzZDAtYTE1Ni0xMWVlLWI0NzEtYWY1YjljNDY5MWIyIiwidiI6ImQ1ZGZlZTM4LWExNTYtMTFlZS1hM2ViLTVlNDllMzEyODNlNyIsInQiOjE3MDMzMTA3ODQ1NzksImgiOiI0MTcxMGNjZTNlM2M4MjU2NjljOGJmODBlZjBjZGNlNzQwYTVjYmVkNjBjOTllMDM2ZGFlZTE4ZjY1NmY0ODFlIn0='
cks
=
''
...
...
@@ -31,7 +30,7 @@ response = requests.post('http://52.52.23.116/tls/forward',
"sec-ch-ua-mobile"
:
"?0"
,
"sec-ch-ua-platform"
:
"
\"
macOS
\"
"
,
"upgrade-insecure-requests"
:
"1"
,
"user-agent"
:
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
,
#
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
"accept"
:
"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"
,
"sec-fetch-site"
:
"none"
,
"sec-fetch-mode"
:
"navigate"
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment