Commit 66c12e7b authored by 王明明's avatar 王明明

改写

parent 671fb383
......@@ -8,6 +8,7 @@ require (
github.com/bogdanfinn/tls-client v1.3.6 // indirect
github.com/bogdanfinn/utls v1.5.14 // indirect
github.com/google/uuid v1.3.0 // indirect
github.com/gorilla/mux v1.8.0 // indirect
github.com/klauspost/compress v1.15.12 // indirect
github.com/tam7t/hpkp v0.0.0-20160821193359-2b70b4024ed5 // indirect
golang.org/x/crypto v0.1.0 // indirect
......
......@@ -9,6 +9,8 @@ github.com/bogdanfinn/utls v1.5.14/go.mod h1:mHeRCi69cUiEyVBkKONB1cAbLjRcZnlJbGz
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
github.com/klauspost/compress v1.15.12 h1:YClS/PImqYbn+UILDnqxQCZ3RehC9N318SU3kElDUEM=
github.com/klauspost/compress v1.15.12/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
......
......@@ -2,148 +2,42 @@ package main
import (
"fmt"
http "github.com/bogdanfinn/fhttp"
tls_client "github.com/bogdanfinn/tls-client"
"io"
"github.com/gorilla/mux"
"log"
"net/url"
"strconv"
"strings"
"sync"
"net/http"
"regexp"
"test/model"
)
type AkmClient struct {
Jar tls_client.CookieJar
Client tls_client.HttpClient
func WelcomeHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Welcome!")
}
var akmClient *AkmClient
func NewAkmClient() *AkmClient {
jar := tls_client.NewCookieJar()
options := []tls_client.HttpClientOption{
tls_client.WithTimeoutSeconds(30),
tls_client.WithClientProfile(tls_client.Chrome_110),
tls_client.WithNotFollowRedirects(),
tls_client.WithCookieJar(jar), // create cookieJar instance and pass it as argument
//tls_client.WithProxyUrl("http://user:pass@host:port"),
//tls_client.WithInsecureSkipVerify(),
}
client, err := tls_client.NewHttpClient(tls_client.NewNoopLogger(), options...)
if err != nil {
log.Println(err)
}
//client.SetProxy("http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600")
client.SetProxy("http://127.0.0.1:9999")
return &AkmClient{Jar: jar, Client: client}
}
func GetAbck(times int, urlInput string) {
abck, bmsz := GetCookie()
data := url.Values{}
data.Set("times", strconv.Itoa(times))
data.Set("abck", abck)
data.Set("bm_sz", bmsz)
data.Set("url", urlInput)
//'url': 'https://www.easyjet.com/en/buy/flights?isOneWay=on&pid=www.easyjet.com'
resp, err := http.PostForm("http://127.0.0.1:3033/akm2t", data)
defer resp.Body.Close()
if err != nil {
log.Println(err)
}
res, _ := io.ReadAll(resp.Body)
sensor_data := "{\"sensor_data\":\"" + string(res) + "\"}"
akmRes, err := akmClient.Client.Post("https://www.easyjet.com/W-rQf1/Hlbd/0lI/xzR/9pRrLiXx/3YOGQtVbp1iLED/HyNpQmYB/ZBc/QIGwxAlM", "application/json", strings.NewReader(sensor_data))
defer akmRes.Body.Close()
akmResBytes, _ := io.ReadAll(akmRes.Body)
fmt.Println(times, string(akmResBytes))
}
func GetCookie() (string, string) {
uri, _ := url.Parse("https://www.easyjet.com/en")
cookies := akmClient.Jar.Cookies(uri)
abck := ""
bmsz := ""
for _, v := range cookies {
if v.Name == "_abck" {
abck = v.Value
}
if v.Name == "bm_sz" {
bmsz = v.Value
}
}
return abck, bmsz
}
func initAbck(url string) {
req, err := http.NewRequest(http.MethodGet, url, nil)
//req, err := http.NewRequest(http.MethodGet, "https://www.easyjet.com/ejavailability/api/v66/availability/query?AdditionalSeats=0&AdultSeats=1&ArrivalIata=LGW&ChildSeats=0&DepartureIata=BFS&IncludeAdminFees=true&IncludeFlexiFares=false&IncludeLowestFareSeats=true&IncludePrices=true&Infants=0&IsTransfer=false&LanguageCode=EN&MaxDepartureDate=2023-03-20&MinDepartureDate=2023-03-18", nil)
if err != nil {
log.Println(err)
return
}
req.Header = http.Header{
"accept": {"*/*"},
"accept-language": {"de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"},
"user-agent": {"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36"},
http.HeaderOrderKey: {
"accept",
"accept-language",
"user-agent",
},
}
_, err = akmClient.Client.Do(req)
//defer resp.Body.Close()
if err != nil {
log.Println(err)
return
}
}
func query() {
req, err := http.NewRequest("GET", "https://www.easyjet.com/ejavailability/api/v66/availability/query?AdditionalSeats=0&AdultSeats=1&ArrivalIata=LGW&ChildSeats=0&DepartureIata=BFS&IncludeAdminFees=true&IncludeFlexiFares=false&IncludeLowestFareSeats=true&IncludePrices=true&Infants=0&IsTransfer=false&LanguageCode=EN&MaxDepartureDate=2023-03-20&MinDepartureDate=2023-03-18", nil)
if err != nil {
panic(err)
}
req.Header = http.Header{
"accept": {"*/*"},
"accept-language": {"de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"},
"user-agent": {"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36"},
http.HeaderOrderKey: {
"accept",
"accept-language",
"user-agent",
},
}
resp, err := akmClient.Client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("响应结果", resp.StatusCode)
//readBytes, _ := io.ReadAll(resp.Body)
//fmt.Println(string(readBytes))
}
func run(wg *sync.WaitGroup) {
akmClient = NewAkmClient()
initAbck("https://www.easyjet.com/en")
GetAbck(0, "https://www.easyjet.com/en/buy/flights?isOneWay=on&pid=www.easyjet.com")
GetAbck(1, "https://www.easyjet.com/en/buy/flights?isOneWay=on&pid=www.easyjet.com")
GetAbck(2, "https://www.easyjet.com/en/buy/flights?isOneWay=on&pid=www.easyjet.com")
query()
wg.Done()
}
func main() {
wg := &sync.WaitGroup{}
for i := 0; i < 10; i++ {
wg.Add(1)
//wg := &sync.WaitGroup{}
//for i := 0; i < 10; i++ {
// wg.Add(1)
//
// go run(wg)
//}
//wg.Wait()
str := "<noscript><img src=\"https://www.easyjet.com/akam/13/pixel_7b9d10f9?a=dD1lMmMzOTBjM2M4NWUyYz\nkzNjljOTNhZDUyNmRkOGJjMDdjNjM2MWJmJmpzPW9mZg==\" style=\"visibility: hidden; position: absolu\nte; left: -999px; top: -999px;\" /></noscript><script type=\"text/javascript\" src=\"/-Hzovq/uluGM/jHPdr/v3N7/m5OOLVXmDOwY/NG4dCQE/Zy/lnEF9qaQI\"></script></body>\n</html>"
reg, _ := regexp.Compile("</noscript><script type=\"text/javascript\" src=\"(.+?)\"></s")
matchs := reg.FindStringSubmatch(str)
fmt.Println(matchs)
router := mux.NewRouter()
router.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {
fmt.Fprintln(writer, "hello world")
})
akmRouter := router.PathPrefix("/akamai").Subrouter()
model.InitRouter(akmRouter)
fmt.Println("服务监听 http://localhost:19999")
server := http.Server{
Addr: ":19999",
Handler: router,
}
log.Fatal(server.ListenAndServe())
go run(wg)
}
wg.Wait()
}
package model
import (
"fmt"
http "github.com/bogdanfinn/fhttp"
tls_client "github.com/bogdanfinn/tls-client"
"io"
"log"
"net/url"
"regexp"
"strings"
"test/sensor"
)
type AkmClient struct {
Jar tls_client.CookieJar
Client tls_client.HttpClient
SensorUrl string
}
var akmClient *AkmClient
func NewAkmClient() *AkmClient {
jar := tls_client.NewCookieJar()
options := []tls_client.HttpClientOption{
tls_client.WithTimeoutSeconds(30),
tls_client.WithClientProfile(tls_client.Chrome_110),
tls_client.WithNotFollowRedirects(),
tls_client.WithCookieJar(jar), // create cookieJar instance and pass it as argument
//tls_client.WithProxyUrl("http://user:pass@host:port"),
//tls_client.WithInsecureSkipVerify(),
}
client, err := tls_client.NewHttpClient(tls_client.NewNoopLogger(), options...)
if err != nil {
log.Println(err)
}
//client.SetProxy("http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600")
client.SetProxy("http://127.0.0.1:8888")
return &AkmClient{Jar: jar, Client: client}
}
func GetAbck(times int, urlInput string) []*http.Cookie {
abck, bmsz := GetCookie()
//data := url.Values{}
//data.Set("times", strconv.Itoa(times))
//data.Set("abck", abck)
//data.Set("bm_sz", bmsz)
//data.Set("url", urlInput)
//'url': 'https://www.easyjet.com/en/buy/flights?isOneWay=on&pid=www.easyjet.com'
//resp, err := http.PostForm("http://127.0.0.1:3033/akm2t", data)
//defer resp.Body.Close()
//if err != nil {
// log.Println(err)
//}
//res, _ := io.ReadAll(resp.Body)
ua := "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.50"
res := sensor.GenData(abck, bmsz, ua, urlInput)
sensor_data := "{\"sensor_data\":\"" + string(res) + "\"}"
akmRes, err := akmClient.Client.Post("https://www.easyjet.com"+akmClient.SensorUrl, "application/json", strings.NewReader(sensor_data))
if err != nil {
log.Fatalln(err)
}
defer akmRes.Body.Close()
akmResBytes, _ := io.ReadAll(akmRes.Body)
fmt.Println(times, string(akmResBytes))
return akmRes.Cookies()
}
func GetCookie() (string, string) {
uri, _ := url.Parse("https://www.easyjet.com/en")
cookies := akmClient.Jar.Cookies(uri)
abck := ""
bmsz := ""
for _, v := range cookies {
if v.Name == "_abck" {
abck = v.Value
}
if v.Name == "bm_sz" {
bmsz = v.Value
}
}
return abck, bmsz
}
func initAbck(url string) string {
req, err := http.NewRequest(http.MethodGet, url, nil)
//req, err := http.NewRequest(http.MethodGet, "https://www.easyjet.com/ejavailability/api/v66/availability/query?AdditionalSeats=0&AdultSeats=1&ArrivalIata=LGW&ChildSeats=0&DepartureIata=BFS&IncludeAdminFees=true&IncludeFlexiFares=false&IncludeLowestFareSeats=true&IncludePrices=true&Infants=0&IsTransfer=false&LanguageCode=EN&MaxDepartureDate=2023-03-20&MinDepartureDate=2023-03-18", nil)
if err != nil {
log.Println(err)
return ""
}
req.Header = http.Header{
"accept": {"*/*"},
"accept-language": {"de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"},
"user-agent": {"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36"},
http.HeaderOrderKey: {
"accept",
"accept-language",
"user-agent",
},
}
resp, err := akmClient.Client.Do(req)
defer resp.Body.Close()
if err != nil {
log.Println(err)
return ""
}
readBytes, _ := io.ReadAll(resp.Body)
//fmt.Println(string(readBytes))
reg, _ := regexp.Compile("</noscript><script type=\"text/javascript\" src=\"(.+?)\"></s")
matchs := reg.FindStringSubmatch(string(readBytes))
if len(matchs) == 2 {
return matchs[1]
}
return ""
}
func query() {
req, err := http.NewRequest("GET", "https://www.easyjet.com/ejavailability/api/v66/availability/query?AdditionalSeats=0&AdultSeats=1&ArrivalIata=LGW&ChildSeats=0&DepartureIata=BFS&IncludeAdminFees=true&IncludeFlexiFares=false&IncludeLowestFareSeats=true&IncludePrices=true&Infants=0&IsTransfer=false&LanguageCode=EN&MaxDepartureDate=2023-03-20&MinDepartureDate=2023-03-18", nil)
if err != nil {
panic(err)
}
req.Header = http.Header{
"accept": {"*/*"},
"accept-language": {"de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"},
"user-agent": {"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36"},
http.HeaderOrderKey: {
"accept",
"accept-language",
"user-agent",
},
}
resp, err := akmClient.Client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("响应结果", resp.StatusCode)
readBytes, _ := io.ReadAll(resp.Body)
fmt.Println(string(readBytes))
}
func EasyJet() *Akm {
akmClient = NewAkmClient()
url := "https://www.easyjet.com/en"
akmClient.SensorUrl = initAbck(url)
GetAbck(0, "https://www.easyjet.com/en/buy/flights?isOneWay=on&pid=www.easyjet.com")
GetAbck(1, "https://www.easyjet.com/en/buy/flights?isOneWay=on&pid=www.easyjet.com")
respCk := GetAbck(2, "https://www.easyjet.com/en/buy/flights?isOneWay=on&pid=www.easyjet.com")
abck, bm_sz := GetCookie()
for _, v := range respCk {
if v.Name == "_abck" {
abck = v.Value
}
}
akm := &Akm{
Abck: abck,
Bmsz: bm_sz,
Cookies: GetAllCookie(),
Ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.50",
}
//query()
return akm
}
func GetAllCookie() map[string]string {
res := make(map[string]string)
uri, _ := url.Parse("https://www.easyjet.com/en")
cookies := akmClient.Jar.Cookies(uri)
for _, v := range cookies {
res[v.Name] = v.Value
}
return res
}
package model
import (
"github.com/gorilla/mux"
"net/http"
"test/util"
)
func routeToU2(w http.ResponseWriter, r *http.Request) {
data := util.GetPostJson(r)
if err := checkPostRequire(data); err == false {
util.WriteJson(w, util.ErrorJson("请求参数不正确"))
}
carrierType := data["type"]
var akm *Akm
switch carrierType {
case "u2":
akm = EasyJet()
default:
util.WriteJson(w, util.ErrorJson("不支持的航司"))
return
}
cookies := akm.Cookies
util.WriteJson(w, &util.Response{
Code: 200,
Message: "请求成功",
Cookies: cookies,
Ua: akm.Ua,
})
}
func checkPostRequire(data map[string]interface{}) bool {
_, ok := data["type"]
if !ok {
return false
}
_, ok = data["proxy"]
if !ok {
return false
}
return true
}
func InitRouter(r *mux.Router) {
r.HandleFunc("/gen", routeToU2).Methods("POST")
}
package model
type Akm struct {
Abck string `json:"_abck"`
Bmsz string `json:"bm_sz"`
Cookies map[string]string `json:"cookies"`
Ua string `json:"ua"`
}
package env
type Env struct {
AddEventListener int `json:"addEventListener"`
XMLHttpRequest int `json:"XMLHttpRequest"`
XDomainRequest int `json:"XDomainRequest"`
Emit int `json:"emit"`
DeviceOrientationEvent int `json:"DeviceOrientationEvent"`
DeviceMotionEvent int `json:"DeviceMotionEvent"`
TouchEvent int `json:"TouchEvent"`
Spawn int `json:"spawn"`
Chrome int `json:"chrome"`
FunctionPrototypeBind int `json:"functionPrototypeBind"`
Buffer int `json:"Buffer"`
PointerEvent int `json:"PointerEvent"`
HasInnerWidth int `json:"innerWidth"`
HasOuterWidth int `json:"outerWidth"`
AvailWidth int `json:"availWidth"`
AvailHeight int `json:"availHeight"`
Width int `json:"width"`
Height int `json:"height"`
InnerHeight int `json:"innerHeight"`
InnerWidth int `json:"innerWidth"`
OuterWidth int `json:"outerWidth"`
}
func bd2(a, b int) int {
return a + b
}
func (c *Env) GenEnvStr() int {
return bd2(bd2(bd2(bd2(bd2(bd2(bd2(bd2(bd2(bd2(bd2(bd2(bd2(c.AddEventListener, CO(c.XMLHttpRequest, 1)), CO(c.XDomainRequest, 2)), CO(c.Emit, 3)), CO(c.DeviceOrientationEvent, 4)), CO(c.DeviceMotionEvent, 5)), CO(c.TouchEvent, 6)), CO(c.Spawn, 7)), CO(c.HasInnerWidth, 8)), CO(c.HasOuterWidth, 9)), CO(c.Chrome, 10)), CO(c.FunctionPrototypeBind, 11)), CO(c.Buffer, 12)), CO(c.PointerEvent, 13))
}
func CO(a int, b int) int {
return a << b
}
func NewEnv() *Env {
return &Env{
AddEventListener: 1,
XMLHttpRequest: 1,
XDomainRequest: 0,
Emit: 0,
DeviceOrientationEvent: 1,
DeviceMotionEvent: 1,
TouchEvent: 1,
Spawn: 0,
Chrome: 1,
FunctionPrototypeBind: 1,
Buffer: 0,
PointerEvent: 1,
HasInnerWidth: 1,
HasOuterWidth: 1,
AvailWidth: 2560,
AvailHeight: 980,
Width: 2560,
Height: 1080,
InnerHeight: 901,
InnerWidth: 2560,
OuterWidth: 2560,
}
}
type Navigator struct {
ProductSub string `json:"productSub"`
Language string `json:"language"`
Product string `json:"product"`
Plugins string `json:"plugins"`
}
func NewNavigator() *Navigator {
return &Navigator{
ProductSub: "20030107",
Language: "zh-CN",
Product: "Gecko",
Plugins: "5",
}
}
package main
package sensor
import (
"fmt"
"math"
"math/rand"
"net/url"
"strconv"
"strings"
env2 "test/sensor/env"
"time"
)
......@@ -20,6 +22,372 @@ func Pr(v9T, pWT int) int {
func Qr(pr int, i int) int {
return pr >> i
}
type AkmSign struct {
Times int
Url string
Abck string
Bmsz string
UserAgent string
startTs int64
}
func now() int64 {
return time.Now().UnixMilli()
}
func NewAkmSign(times int, url, ua string, abck string, bmsz string) *AkmSign {
return &AkmSign{Times: times, Url: url, Abck: abck, Bmsz: bmsz, UserAgent: ua, startTs: time.Now().UnixMilli()}
}
func (a AkmSign) genData() string {
Y8 := a.startTs / 2
f3 := now()
env := env2.NewEnv()
envStr := env.GenEnvStr()
navigator := env2.NewNavigator()
Rs := navigator.ProductSub
ds := navigator.Language
Ls := navigator.Product
Xs := navigator.Plugins
qs := 0
Ys := 0
Os := 0
Hs := a.startTs / 4064256
Ho := Hs / 23
Wx := a.funcWx()
// todo webkit
PO := 30261693
dU := []string{"cpen:0",
"i1:0",
"dm:0",
"cwen:0",
"non:1",
"opc:0",
"fc:0",
"sc:0",
"wrc:1",
"isc:0",
"vib:1",
"bat:1",
"x11:0",
"x12:1"}
fmt.Println(Wx)
Ds := rand.Float64()
Ns := int(Ds * 1000 / 2)
q8 := 9744
data2 := []interface{}{
a.UserAgent,
"uaend",
envStr, Rs, ds, Ls, Xs, qs, Ys, Os, Hs, "0",
env.AvailWidth, env.AvailHeight, env.Width, env.Height, env.InnerHeight,
env.InnerWidth, env.OuterWidth, ""}
for _, v := range dU {
data2 = append(data2, v)
}
Al := 0
randomStr := strconv.FormatFloat(Ds, 'f', 11, 64)[:11] + strconv.Itoa(Ns)
data2 = append(data2, q8, randomStr, Y8, Al, "loc")
arg100 := toString(data2) + ":"
fmt.Println(arg100)
//arg102 := ""
//if a.Times > 3 {
// arg102 = "0,-1,1,0,-1,-1,0;0,-1,1,0,-1,-1,0;0,0,1,1,2416,1765,0;0,0,0,1,2954,2303,0;-1,-1,1,1,1065,529,0;0,-1,0,0,2108,2108,0;"
//}
m3 := now() - a.startTs
if a.Times == 1 || a.Times == 2 {
m3 += int64(500 + rand.Intn(100))
} else if a.Times > 2 {
m3 += int64(100 + rand.Intn(100))
}
arg102 := ""
if a.Times > 3 {
arg102 = "0,-1,1,0,-1,-1,0;0,-1,1,0,-1,-1,0;0,0,1,1,2416,1765,0;0,0,0,1,2954,2303,0;-1,-1,1,1,1065,529,0;0,-1,0,0,2108,2108,0;"
}
VA := now()
OA := a.genCanvas()
dY := map[string]string{
"fpValStr": "448809179;-1;dis;,7;true;true;true;-480;true;24;24;true;false;-1",
"rVal": OA[1],
"rCFP": OA[2],
}
td := int(now() - VA + 20)
checkCookie := a.VE(a.Abck)
vY := 0
px := 0
KO := Ho / 6
fmt.Println(now() - (a.startTs - 500))
fmt.Println(float64(now() - (a.startTs - 500)))
jO := rand.Intn(500) + 500
Ix := 0
CE := 0
if a.Times == 4 {
fmt.Println("构造鼠标轨迹")
}
arg155_1 := -999999
arg155_2 := "-1"
arg155_3 := "-1"
if a.Times > 0 {
arg155_1 = td
arg155_2 = dY["rVal"]
arg155_2 = dY["rCFP"]
}
arg115 := []interface{}{
1, 32, 32, 0, 0, 0, 0, m3 + 5, 0, a.startTs, arg155_1, Ho, vY, px, KO,
0, Ix, jO, CE, "0", a.Abck, checkCookie, arg155_2, arg155_3, PO, "PiZtE",
Wx[0], Wx[1], 0, -1, 0,
}
fmt.Println(toString(arg115))
arg80 := a.VE(dY["fpValStr"])
arg90 := a.gen90()
NJ := "1"
VJ := "1,1,1"
RJ := "0"
dJ := "1"
permissions := "11321144241322243122"
if a.Times > 0 {
permissions = "8"
}
WJ := ",0,070f409b82df3bdd2f51a6415c7895353c153c47fe6dd8a0f87f3d14c46ccb2b,4,8,5,1,8,5,1,Google Inc. (ATI Technologies Inc.),ANGLE (ATI Technologies Inc., AMD Radeon RX 560 OpenGL Engine, OpenGL 4.1)"
usedMemorySize := int(rand.Float64()*47219368 + 47219368/2)
FJ := "4294705152," + strconv.Itoa(usedMemorySize) + "," + strconv.Itoa(4294705152-usedMemorySize) + ",-1,-1"
XJ := "0,841583dac09a721cf2d2c57a09180590d9939b2b73219e5cc6b1dc72b2b04594,0123456789101112,Reload"
gJ := "940925d1b20db7e9ace7d42cb9f7efb38d0d1b3e77f44b62f059f99f534425ac"
qJ := "-1"
arg128 := ",,"
if a.Times == 1 || a.Times == 3 || a.Times == 4 {
arg128 = WJ + "," + NJ + "," + gJ
}
arg131 := ",,,"
if a.Times == 1 || a.Times == 3 || a.Times == 4 {
arg131 = FJ + "," + VJ + "," + RJ + "," + dJ
}
arg132 := ","
if a.Times == 1 || a.Times == 3 || a.Times == 4 {
arg132 = XJ + "," + qJ
}
arg129 := "5a4dd815976b96d7332ee11d4ad4f22fbd9d8484fb33b68201be1b71ded52cf3,1,0,Google Inc. (ATI Technologies Inc.),ANGLE (ATI Technologies Inc., AMD Radeon RX 560 OpenGL Engine, OpenGL 4.1),2cd06f89ccaf413c4875680e907893d902d434005dea52a232d420825cd4fa5f,28"
zN := a.zNfunc()
fmt.Println(zN)
//WN := zN[0]
//DN := zN[1]
//EN := zN[2]
//YN := zN[3]
//GN := zN[4]
//pN := zN[5]
//BN := zN[6]
//AN := a.startTs
//Uz := DN + a.startTs + EN
arg124 := ""
if a.Times == 3 {
}
times1 := 0
switch a.Times {
case 0:
times1 = 0
case 1:
times1 = 9
case 2:
times1 = 8
default:
times1 = 1
}
timeStr := strconv.Itoa(times1) + "," + strconv.Itoa(a.Times)
data := []any{
"-100",
arg100,
"-105",
"",
"-108",
"",
"-101",
"do_en,dm_en,t_en",
}
tss := now() - a.startTs
arg109 := ""
if a.Times > 2 {
arg109 = "0," + strconv.Itoa(int(tss)) + ",-1,-1,-1,-1,-1,-1,-1,-1,-1;"
}
data = append(data, "-110", "")
data = append(data, "-117", "", "-109", arg109)
data = append(data, "-102", arg102)
data = append(data, "-111",
"0,"+strconv.Itoa(int(tss+1))+",-1,-1,-1;",
// "",
"-114",
"",
"-103", // 3 focus 2 blur 焦点问题
// "3,4352;2,12709;0,12719;3,17043;1,17079;",
"")
data = append(data, "-106",
timeStr,
"-115",
// "1,32,32,0,0,0,0,4075,0,1676447795649,-999999,17934,0,0,2989,0,0,4079,0,0,CF546EF91349FD04AAFF436D48BC1E41~-1~YAAQRq08Fy5m7CiGAQAAdWsOVAnvfV/BUEgLoHamIMLnzdDoES1zt19HsfaS5bLPJoxT1UH8f5l3DpvRE3tr+PZ9tmEjq9GGRjFrLlXelMl1Fj3e/JvUWjJrmiZDG3I3hXSOnT0JswGkRnzdgKJ/RTJoUDrjXIZVhkXCiGht1GN4Npm5/ge4jabJAwfknRMx6J22sqMYw/dfypnXeG5iP84Cyz1m/sNthIG3P7lEdZ0/IrOiVMASglN+MWWBbLd8VzOxES7fSwYRdl3LbpTcYZ5kzcQ5BCe3uqH1aJR4XuOITAFH0FtqBAMzva08IWWK8Hh613mJNPcKAT9OJYNMs9Mf7EBh8xXHUns4JfJt5z9KE05uAJCrgDuyyuV349ZhIDuqXjUK/2ZR2A9zmQwfVzY5jZVaDfUW/Odm4nHZzsXQfzhf4G3IyTE=~-1~-1~-1,40161,-1,-1,30261693,PiZtE,53681,94,0,-1,0",
arg115,
"-112",
a.Url,
"-119",
"-1",
"-122",
"0,0,0,0,1,0,0",
"-123",
"")
data = append(data, "-124",
arg124,
"-126",
"")
data = append(data, "-127", permissions)
data = append(data, "-128", arg128)
data = append(data, "-131", arg131)
data = append(data, "-132", arg132)
data = append(data, "-133", "")
if a.Times == 0 {
data = append(data, "-70",
"-1", "-80", "94", "-90", arg90, "-116", 0, "-129", "")
} else {
data = append(data, "-70",
dY["fpValStr"], "-80", arg80, "-90", arg90, "-116", 0, "-129", arg129)
}
return GenSensorData(toStringList(data), a.Bmsz, f3)
}
func toString(data []interface{}) string {
res := make([]string, len(data))
for i, v := range data {
switch v.(type) {
case string:
res[i] = v.(string)
case int:
res[i] = strconv.Itoa(v.(int))
case int64:
fmt.Println(v)
res[i] = strconv.Itoa(int(v.(int64)))
case float64:
res[i] = fmt.Sprintf("%f", v)
}
}
return strings.Join(res, ",")
}
func toStringList(data []any) []string {
res := make([]string, len(data))
for i, v := range data {
switch v.(type) {
case string:
res[i] = v.(string)
case int:
res[i] = strconv.Itoa(v.(int))
case int64:
fmt.Println(v)
res[i] = strconv.Itoa(int(v.(int64)))
case float64:
res[i] = fmt.Sprintf("%f", v)
}
}
return res
}
func Irand() *rand.Rand {
r := rand.New(rand.NewSource(time.Now().UnixNano()))
return r
}
func (a *AkmSign) funcWx() []int64 {
Mc := int64(math.Floor(rand.Float64()*1e5 + 1e4))
Hc := strconv.Itoa(int(a.startTs * Mc))
Zc := 0
var Dc []int
Wc := len(Hc) >= 18
for i := 0; len(Dc) < 6; i++ {
t, _ := strconv.Atoi(Hc[Zc : Zc+2])
Dc = append(Dc, t)
if Wc {
Zc += 3
} else {
Zc += 2
}
}
var res []int64
res = append(res, Mc)
res = append(res, a.genVc(Dc))
return res
}
func (a AkmSign) genVc(Rc []int) int64 {
dc := Rc[0] - Rc[1]
Lc := Rc[2] - Rc[3]
Xc := Rc[4] - Rc[5]
qc := math.Sqrt(float64(dc*dc + Lc*Lc + Xc*Xc))
return int64(math.Floor(qc))
}
func (a AkmSign) genCanvas() []string {
res := make([]string, 3)
res[0] = fmt.Sprintf("%d", -1338919844)
res[1] = fmt.Sprintf("%d", rand.Intn(400)+100)
res[2] = fmt.Sprintf("%d", 204099283)
return res
}
func (a AkmSign) VE(wc string) int {
var kc int = 0
for i := 0; i < len(wc); i++ {
sc := wc[i]
if sc < 128 {
kc += int(sc)
}
}
return int(kc)
}
func (a AkmSign) gen90() []int {
randomInt := rand.Intn(20)
t := time.UnixMilli(a.startTs)
month := int(int(t.Month())+1) * t.Day()
return []int{month, randomInt}
}
func (a AkmSign) zNfunc() map[int]any {
abck, _ := url.QueryUnescape(a.Abck)
TXU := strings.SplitAfter(abck, "~")
if len(TXU) > 5 {
bXU := TXU[0]
mxU := strings.Split(TXU[4], "||")
for DXU := 0; DXU < len(mxU); DXU++ {
vXU := strings.Split(mxU[DXU], "-")
if len(vXU) >= 5 {
SXU, _ := strconv.Atoi(vXU[0])
JXU := vXU[1]
HXU, _ := strconv.Atoi(vXU[2])
ZXU, _ := strconv.Atoi(vXU[3])
kXU, _ := strconv.Atoi(vXU[4])
QXU := 1
if len(vXU) >= 6 {
QXU, _ = strconv.Atoi(vXU[5])
}
fXU := make(map[int]any)
fXU[0] = SXU
fXU[1] = bXU
fXU[2] = JXU
fXU[3] = HXU
fXU[4] = ZXU
fXU[5] = kXU
fXU[6] = QXU
if QXU == 2 {
return fXU
}
}
}
}
return nil
}
func genT3() string {
HL := "abcdefghijklmnopaqrstuvxyzABCDEFGHIJKLMNOPAQRSTUVXYZ!@#%&-_=;:<>,~000000000000000000001111111111111111111133333333333333333333444444444444444444445555555555555555555566666666666666666666777777777777777777778888888888888888888899999999999999999999"
hL := ","
......@@ -97,12 +465,14 @@ func genSensor2(Zr string, Dr int) string {
}
return res
}
func GenSensorData(data []string, bmsz string) string {
func GenSensorData(data []string, bmsz string, f3 int64) string {
t3 := genT3()
t3 = ",lll,lll,lll,"
//t3 = ",lll,lll,lll,"
text := strings.Join(data, t3)
t := bd("2", t3)
t = bd(t, "2")
tw := now()
Jw := "7a74G7m23Vrp0o5c931372"
Uw := "2s0asvpTvpeqfsTnrJpApg=="
text = bd(bd(bd(bd(bd(Jw, Uw), t3), strconv.Itoa(24^VE(text))), t3), text)
......@@ -114,13 +484,13 @@ func GenSensorData(data []string, bmsz string) string {
cw := time.Now().Unix()
cw = time.Now().Unix() - cw
Mr := time.Now().Unix()
t1 := time.Now()
text = genSensor1(text, ww[1])
fmt.Println(time.Since(t1).String())
Mr = time.Now().Unix() - Mr
text = genSensor2(text, ww[0])
fmt.Println(len(text))
return text
zr := strconv.Itoa(int(now()-f3)) + "," + "0," + strconv.Itoa(int(tw)) + "," + strconv.Itoa(int(cw)) + "," + strconv.Itoa(int(Mr)) + "0"
fr := ";"
return "2;" + strconv.Itoa(ww[0]) + fr + strconv.Itoa(ww[1]) + fr + zr + fr + text
}
func splitBmsz(bmsz string) []int {
......@@ -139,14 +509,26 @@ func splitBmsz(bmsz string) []int {
func bd(a, b string) string {
return a + b
}
func GenData(abck, bmsz, ua, url string) string {
t1 := time.Now()
akm := NewAkmSign(0, url, ua, abck, bmsz)
fmt.Println("cost", time.Since(t1).String())
return akm.genData()
}
func main() {
datas := "-100---Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.41,uaend,12147,20030107,zh-CN,Gecko,5,0,0,0,412917,0,2560,980,2560,1080,2560,901,2560,,cpen:0,i1:0,dm:0,cwen:0,non:1,opc:0,fc:0,sc:0,wrc:1,isc:0,vib:1,bat:1,x11:0,x12:1,9744,0.864927429432,839100684994.5,0,loc:----105---0,-1,0,0,-1,566,0;-1,-1,0,0,-1,-1,0;-1,-1,0,0,-1,-1,0;-1,-1,0,0,-1,-1,0;-1,-1,0,0,-1,-1,0;0,-1,0,0,-1,566,0;----108-------101---do_en,dm_en,t_en----110---0,1,609,842,698;1,1,583,685,666;2,1,623,979,547;3,1,602,894,530;4,1,623,805,441;5,1,596,934,308;6,1,556,930,550;7,1,545,928,488;8,1,541,633,418;9,1,599,876,793;10,1,572,687,699;11,1,607,784,493;12,1,586,520,700;13,1,566,504,625;14,1,569,573,425;15,1,595,536,710;16,1,618,877,695;17,1,547,571,709;18,1,609,766,693;19,1,562,632,530;20,1,637,735,523;21,1,551,699,407;22,1,553,595,467;23,1,555,669,609;24,1,624,641,505;25,1,628,725,691;26,1,611,922,521;27,1,584,887,733;28,1,616,964,795;29,1,590,807,581;30,1,586,623,404;31,1,538,972,364;32,1,548,791,659;33,1,571,868,501;34,1,598,973,637;35,1,548,586,556;36,1,616,980,777;37,1,605,877,511;38,1,594,974,685;39,1,600,769,691;40,1,549,673,591;41,1,634,835,545;42,1,569,753,597;43,1,550,602,429;44,1,592,651,553;45,1,608,742,361;46,1,552,878,667;47,1,631,591,464;48,1,585,994,347;49,1,555,684,576;50,1,600,686,729;51,1,628,985,391;52,1,637,561,769;53,1,566,545,383;54,1,631,690,492;55,1,552,537,739;56,1,615,977,516;57,1,603,756,586;58,1,574,657,587;59,1,616,926,673;60,1,636,563,508;61,1,561,628,604;62,1,547,676,491;63,1,578,995,525;64,1,586,973,671;65,1,565,502,484;66,1,624,599,766;67,1,612,861,401;68,1,628,745,563;69,1,541,725,799;70,1,567,704,650;71,1,545,877,447;72,1,550,556,663;73,1,635,702,595;74,1,605,753,558;75,1,611,969,628;76,1,541,881,393;77,1,588,791,554;78,1,575,553,527;79,1,587,742,711;80,1,541,574,447;81,1,596,812,382;82,1,621,602,796;83,1,626,693,376;84,1,586,611,523;85,1,551,534,702;86,1,609,786,388;87,1,549,773,754;88,1,610,727,345;89,1,543,606,437;90,1,552,547,487;91,1,553,779,384;92,1,541,768,588;93,1,624,591,620;94,1,561,661,354;95,1,633,729,698;96,1,634,503,586;97,1,586,814,312;98,1,551,901,717;99,1,568,571,787;1607,3,26307,849,243,-1;----117-------109-------102---0,-1,0,0,-1,566,0;0,-1,0,0,1223,1223,0;0,-1,0,0,-1,566,0;----111-------114-------103-------106---9,2----115---1,32,32,0,0,0,0,122,0,1678201369989,555,17952,0,0,2992,0,0,37,0,0,08A3A67A872787A1DA63B33C1B6F6266~-1~YAAQtto4faoFjjaGAQAAyLb0XQmN75m4SdNZL1Mhxzd6fBT2ehvIgWFgVBy17LBJba5URgSuHwAtvbQhzm/rXFQGm1a5mnqcZqW4hFtD7HXm26efjv/f+SD6FVCaQmQ4U1sWpr0Uw7kxaEKtOZwmIS0Lx3g4lm6q/jwResUdTJX//gxTjv1aOnE2GhvB/KjPiEpW2uA/eOaxT2oMSSDYWakxqRgblkhagV+RR1YJ67f0S0vPkYMoZYvoS2Ni0UHOOzBbDYPYErAcO+d66tglpJWBd/pwp0hLeeVc1z0Hh3a3yUfzFQf+2XINO7x6By/u/3QNTg208ApArF4LYKxH4BPmb2S69MvN/nGTTP6gjuZaGA3r4GlYQfV/3DpEkJU96Wg3R8iPczz5zJ7XTZzPp5fXqAMs1S0qP2XugZtRbxlhgfKWFP7ot8JXOmFTqTfUkWiSa+nyEA==~-1~-1~-1,41950,213,-1194943582,30261693,PiZtE,47604,69,0,-1,0----112---https://wizzair.com/en-gb#/booking/select-flight/TLV/LTN/2023-03-10/null/1/0/0/null----119----1----122---0,0,0,0,1,0,0----123-------124-------126-------127---01301044241322243122----128---,0,070f409b82df3bdd2f51a6415c7895353c153c47fe6dd8a0f87f3d14c46ccb2b,4,8,5,1,8,5,1,Google Inc. (ATI Technologies Inc.),ANGLE (ATI Technologies Inc., AMD Radeon RX 560 OpenGL Engine, OpenGL 4.1),1,940925d1b20db7e9ace7d42cb9f7efb38d0d1b3e77f44b62f059f99f534425ac----131---4294705152,42611879,4252093273,100,350,1,1,1,0,1----132---0,841583dac09a721cf2d2c57a09180590d9939b2b73219e5cc6b1dc72b2b04594,0123456789101112,Reload,-1----133-------70----841148590;-1;dis;,7;true;true;true;-480;true;24;24;true;false;-1----80---5059----90---19|12----116---0----129---5a4dd815976b96d7332ee11d4ad4f22fbd9d8484fb33b68201be1b71ded52cf3,1,d4e06ee2f99cda3a5513c1d789b160f7e89199ffd53ce46874be61c7b1974f60,Google Inc. (ATI Technologies Inc.),ANGLE (ATI Technologies Inc., AMD Radeon RX 560 OpenGL Engine, OpenGL 4.1),2cd06f89ccaf413c4875680e907893d902d434005dea52a232d420825cd4fa5f,28"
datas = "-100||||Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.41,uaend,12147,20030107,zh-CN,Gecko,5,0,0,0,412918,0,2560,980,2560,1080,2560,901,2560,,cpen:0,i1:0,dm:0,cwen:0,non:1,opc:0,fc:0,sc:0,wrc:1,isc:0,vib:1,bat:1,x11:0,x12:1,9744,0.04781215623,839102295873,0,loc:||||-105||||0,-1,0,0,-1,566,0;-1,-1,0,0,-1,-1,0;-1,-1,0,0,-1,-1,0;-1,-1,0,0,-1,-1,0;-1,-1,0,0,-1,-1,0;0,-1,0,0,-1,566,0;||||-108||||||||-101||||do_en,dm_en,t_en||||-110||||0,1,511,523,323;1,1,511,523,323;2,1,511,523,323;3,1,511,523,323;4,1,512,523,323;5,1,512,523,323;6,1,512,523,323;7,1,512,523,323;8,1,512,523,323;9,1,512,523,323;10,1,512,523,323;11,1,512,523,323;12,1,512,523,323;13,1,512,523,323;14,1,512,523,323;15,1,512,523,323;16,1,512,523,323;17,1,512,523,323;18,1,512,523,323;19,1,512,523,323;20,1,512,523,323;21,1,512,523,323;22,1,512,523,323;23,1,512,523,323;24,1,512,523,323;25,1,512,523,323;26,1,512,523,323;27,1,512,523,323;28,1,512,523,323;29,1,512,523,323;30,1,512,523,323;31,1,512,523,323;32,1,512,523,323;33,1,512,523,323;34,1,512,523,323;35,1,512,523,323;36,1,512,523,323;37,1,512,523,323;38,1,512,523,323;39,1,512,523,323;40,1,512,523,323;41,1,512,523,323;42,1,512,523,323;43,1,512,523,323;44,1,512,523,323;45,1,512,523,323;46,1,512,523,323;47,1,512,523,323;48,1,512,523,323;49,1,512,523,323;50,1,512,523,323;51,1,512,523,323;52,1,512,523,323;53,1,512,523,323;54,1,512,523,323;55,1,512,523,323;56,1,512,523,323;57,1,512,523,323;58,1,512,523,323;59,1,512,523,323;60,1,512,523,323;61,1,512,523,323;62,1,512,523,323;63,1,512,523,323;64,1,512,523,323;65,1,512,523,323;66,1,512,523,323;67,1,512,523,323;68,1,512,523,323;69,1,512,523,323;70,1,512,523,323;71,1,512,523,323;72,1,512,523,323;73,1,512,523,323;74,1,512,523,323;75,1,512,523,323;76,1,512,523,323;77,1,512,523,323;78,1,512,523,323;79,1,512,523,323;80,1,512,523,323;81,1,512,523,323;82,1,512,523,323;83,1,512,523,323;84,1,512,523,323;85,1,512,523,323;86,1,512,523,323;87,1,512,523,323;88,1,512,523,323;89,1,512,523,323;90,1,512,523,323;91,1,512,523,323;92,1,512,523,323;93,1,512,523,323;94,1,512,523,323;95,1,512,523,323;96,1,512,523,323;97,1,512,523,323;98,1,512,523,323;99,1,512,523,323;1607,3,26307,849,243,-1;||||-117||||||||-109||||||||-102||||0,-1,0,0,-1,566,0;0,-1,0,0,1223,1223,0;0,-1,0,0,-1,566,0;||||-111||||||||-114||||||||-103||||||||-106||||9,2||||-115||||1,32,32,0,0,0,0,109,0,1678204591746,526,17952,0,0,2992,0,0,7,0,0,08A3A67A872787A1DA63B33C1B6F6266~-1~YAAQtto4faoFjjaGAQAAyLb0XQmN75m4SdNZL1Mhxzd6fBT2ehvIgWFgVBy17LBJba5URgSuHwAtvbQhzm/rXFQGm1a5mnqcZqW4hFtD7HXm26efjv/f+SD6FVCaQmQ4U1sWpr0Uw7kxaEKtOZwmIS0Lx3g4lm6q/jwResUdTJX//gxTjv1aOnE2GhvB/KjPiEpW2uA/eOaxT2oMSSDYWakxqRgblkhagV+RR1YJ67f0S0vPkYMoZYvoS2Ni0UHOOzBbDYPYErAcO+d66tglpJWBd/pwp0hLeeVc1z0Hh3a3yUfzFQf+2XINO7x6By/u/3QNTg208ApArF4LYKxH4BPmb2S69MvN/nGTTP6gjuZaGA3r4GlYQfV/3DpEkJU96Wg3R8iPczz5zJ7XTZzPp5fXqAMs1S0qP2XugZtRbxlhgfKWFP7ot8JXOmFTqTfUkWiSa+nyEA==~-1~-1~-1,41950,47,55285803,30261693,PiZtE,14781,57,0,-1,0||||-112||||https://wizzair.com/en-gb#/booking/select-flight/TLV/LTN/2023-03-10/null/1/0/0/null||||-119||||-1||||-122||||0,0,0,0,1,0,0||||-123||||||||-124||||||||-126||||||||-127||||01301044241322243122||||-128||||,0,070f409b82df3bdd2f51a6415c7895353c153c47fe6dd8a0f87f3d14c46ccb2b,4,8,5,1,8,5,1,Google Inc. (ATI Technologies Inc.),ANGLE (ATI Technologies Inc., AMD Radeon RX 560 OpenGL Engine, OpenGL 4.1),1,940925d1b20db7e9ace7d42cb9f7efb38d0d1b3e77f44b62f059f99f534425ac||||-131||||4294705152,25867343,4268837809,100,350,1,1,1,0,1||||-132||||0,841583dac09a721cf2d2c57a09180590d9939b2b73219e5cc6b1dc72b2b04594,0123456789101112,Reload,-1||||-133||||||||-70||||-841148590;-1;dis;,7;true;true;true;-480;true;24;24;true;false;-1||||-80||||5059||||-90||||8|1||||-116||||0||||-129||||5a4dd815976b96d7332ee11d4ad4f22fbd9d8484fb33b68201be1b71ded52cf3,1,d4e06ee2f99cda3a5513c1d789b160f7e89199ffd53ce46874be61c7b1974f60,Google Inc. (ATI Technologies Inc.),ANGLE (ATI Technologies Inc., AMD Radeon RX 560 OpenGL Engine, OpenGL 4.1),2cd06f89ccaf413c4875680e907893d902d434005dea52a232d420825cd4fa5f,28"
url := "https://www.easyjet.com/en"
abck := "B9E0C674552DB391815F82C0647FADC9~-1~YAAQBGUzuBl9/72GAQAAyb94wAm4ydH5I2znFxoyfaPIvHOHSyqXZHzgQ7m2RkagTpBzztNa5LmNFcqg4DNXEm/tZ+r1JxOWYfLY1EA5bzEvauFo6puMeVBuo4HdbMVfmxlwKaZpIQRNtUq0Z1wEmw2rrWetb3RktDypg1QT1tuF/hnXMQseB7YMYUY2Gku1MCLDlJF3wgsm6+tXjbhbqG0RR5IKiv3My4Q5kx2JEGDFV+X/RgB5wQz1ggUsipMSyDhrqlBsYhuMxyOzZNUQX29HuKZZjKTF3omqkyGJIrMhWz7yQ3fwlKrTYjswHxIX/GP4rZqWUL3m0Zhnhu/SrZipSJOLtKbgTwTuQS+iAXNP5DsSVGL0s8+nMrQNuIVyCNUZg3nxRRjgDx/+AvYppn2xiwW/tkuOAYIbtFRkirM5J9U=~-1~||1-EAjzIUtDUl-2250-10-1000-2||~-"
bmsz := "F7BF54E40B51C55E0818DC07CD173D3D~YAAQtto4fZOUjTaGAQAAu2TuXRLag7FMMOcGVWfM6R1TuxY9u8Z+UDLtA8qE03/kyE1u1gycaSyEWy9GEbaHoyc2CT7Gqokpc8mxNY8qoEITjbsXZlhLE9Zm2K7ekUb1wAsxocavW2rsJTBvlEfYAcPs6/04ASA1QueCbMErtMm5Jqg7MnPVmCym75ewsP6qihOts07wgEWNkbSsdaHzQf4cm3uHxirh3o91GojyUSGrxRcFRn4NJlQtxIX/PrOsUr4HyxcYTAX+WUh6QyBCzGQ4pNgiszuc4R9OdAy3XGc6LzUP7PBIl5fz6OpZUj2gTJT2j5WPOn2I469jdYrZCAMoajftNJ9nrdy36vkz9S+Xp3z7dh9btp+Q+bpRYd1M9zhtmlmHxTTSv7rs6sOBHE/tmvEHXtc=~3748403~3683895"
ua := "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.50"
data := strings.Split(datas, "||||")
println(GenSensorData(data, bmsz))
GenData(abck, bmsz, ua, url)
//datas := "-100---Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.41,uaend,12147,20030107,zh-CN,Gecko,5,0,0,0,412917,0,2560,980,2560,1080,2560,901,2560,,cpen:0,i1:0,dm:0,cwen:0,non:1,opc:0,fc:0,sc:0,wrc:1,isc:0,vib:1,bat:1,x11:0,x12:1,9744,0.864927429432,839100684994.5,0,loc:----105---0,-1,0,0,-1,566,0;-1,-1,0,0,-1,-1,0;-1,-1,0,0,-1,-1,0;-1,-1,0,0,-1,-1,0;-1,-1,0,0,-1,-1,0;0,-1,0,0,-1,566,0;----108-------101---do_en,dm_en,t_en----110---0,1,609,842,698;1,1,583,685,666;2,1,623,979,547;3,1,602,894,530;4,1,623,805,441;5,1,596,934,308;6,1,556,930,550;7,1,545,928,488;8,1,541,633,418;9,1,599,876,793;10,1,572,687,699;11,1,607,784,493;12,1,586,520,700;13,1,566,504,625;14,1,569,573,425;15,1,595,536,710;16,1,618,877,695;17,1,547,571,709;18,1,609,766,693;19,1,562,632,530;20,1,637,735,523;21,1,551,699,407;22,1,553,595,467;23,1,555,669,609;24,1,624,641,505;25,1,628,725,691;26,1,611,922,521;27,1,584,887,733;28,1,616,964,795;29,1,590,807,581;30,1,586,623,404;31,1,538,972,364;32,1,548,791,659;33,1,571,868,501;34,1,598,973,637;35,1,548,586,556;36,1,616,980,777;37,1,605,877,511;38,1,594,974,685;39,1,600,769,691;40,1,549,673,591;41,1,634,835,545;42,1,569,753,597;43,1,550,602,429;44,1,592,651,553;45,1,608,742,361;46,1,552,878,667;47,1,631,591,464;48,1,585,994,347;49,1,555,684,576;50,1,600,686,729;51,1,628,985,391;52,1,637,561,769;53,1,566,545,383;54,1,631,690,492;55,1,552,537,739;56,1,615,977,516;57,1,603,756,586;58,1,574,657,587;59,1,616,926,673;60,1,636,563,508;61,1,561,628,604;62,1,547,676,491;63,1,578,995,525;64,1,586,973,671;65,1,565,502,484;66,1,624,599,766;67,1,612,861,401;68,1,628,745,563;69,1,541,725,799;70,1,567,704,650;71,1,545,877,447;72,1,550,556,663;73,1,635,702,595;74,1,605,753,558;75,1,611,969,628;76,1,541,881,393;77,1,588,791,554;78,1,575,553,527;79,1,587,742,711;80,1,541,574,447;81,1,596,812,382;82,1,621,602,796;83,1,626,693,376;84,1,586,611,523;85,1,551,534,702;86,1,609,786,388;87,1,549,773,754;88,1,610,727,345;89,1,543,606,437;90,1,552,547,487;91,1,553,779,384;92,1,541,768,588;93,1,624,591,620;94,1,561,661,354;95,1,633,729,698;96,1,634,503,586;97,1,586,814,312;98,1,551,901,717;99,1,568,571,787;1607,3,26307,849,243,-1;----117-------109-------102---0,-1,0,0,-1,566,0;0,-1,0,0,1223,1223,0;0,-1,0,0,-1,566,0;----111-------114-------103-------106---9,2----115---1,32,32,0,0,0,0,122,0,1678201369989,555,17952,0,0,2992,0,0,37,0,0,08A3A67A872787A1DA63B33C1B6F6266~-1~YAAQtto4faoFjjaGAQAAyLb0XQmN75m4SdNZL1Mhxzd6fBT2ehvIgWFgVBy17LBJba5URgSuHwAtvbQhzm/rXFQGm1a5mnqcZqW4hFtD7HXm26efjv/f+SD6FVCaQmQ4U1sWpr0Uw7kxaEKtOZwmIS0Lx3g4lm6q/jwResUdTJX//gxTjv1aOnE2GhvB/KjPiEpW2uA/eOaxT2oMSSDYWakxqRgblkhagV+RR1YJ67f0S0vPkYMoZYvoS2Ni0UHOOzBbDYPYErAcO+d66tglpJWBd/pwp0hLeeVc1z0Hh3a3yUfzFQf+2XINO7x6By/u/3QNTg208ApArF4LYKxH4BPmb2S69MvN/nGTTP6gjuZaGA3r4GlYQfV/3DpEkJU96Wg3R8iPczz5zJ7XTZzPp5fXqAMs1S0qP2XugZtRbxlhgfKWFP7ot8JXOmFTqTfUkWiSa+nyEA==~-1~-1~-1,41950,213,-1194943582,30261693,PiZtE,47604,69,0,-1,0----112---https://wizzair.com/en-gb#/booking/select-flight/TLV/LTN/2023-03-10/null/1/0/0/null----119----1----122---0,0,0,0,1,0,0----123-------124-------126-------127---01301044241322243122----128---,0,070f409b82df3bdd2f51a6415c7895353c153c47fe6dd8a0f87f3d14c46ccb2b,4,8,5,1,8,5,1,Google Inc. (ATI Technologies Inc.),ANGLE (ATI Technologies Inc., AMD Radeon RX 560 OpenGL Engine, OpenGL 4.1),1,940925d1b20db7e9ace7d42cb9f7efb38d0d1b3e77f44b62f059f99f534425ac----131---4294705152,42611879,4252093273,100,350,1,1,1,0,1----132---0,841583dac09a721cf2d2c57a09180590d9939b2b73219e5cc6b1dc72b2b04594,0123456789101112,Reload,-1----133-------70----841148590;-1;dis;,7;true;true;true;-480;true;24;24;true;false;-1----80---5059----90---19|12----116---0----129---5a4dd815976b96d7332ee11d4ad4f22fbd9d8484fb33b68201be1b71ded52cf3,1,d4e06ee2f99cda3a5513c1d789b160f7e89199ffd53ce46874be61c7b1974f60,Google Inc. (ATI Technologies Inc.),ANGLE (ATI Technologies Inc., AMD Radeon RX 560 OpenGL Engine, OpenGL 4.1),2cd06f89ccaf413c4875680e907893d902d434005dea52a232d420825cd4fa5f,28"
//datas = "-100||||Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.41,uaend,12147,20030107,zh-CN,Gecko,5,0,0,0,412918,0,2560,980,2560,1080,2560,901,2560,,cpen:0,i1:0,dm:0,cwen:0,non:1,opc:0,fc:0,sc:0,wrc:1,isc:0,vib:1,bat:1,x11:0,x12:1,9744,0.04781215623,839102295873,0,loc:||||-105||||0,-1,0,0,-1,566,0;-1,-1,0,0,-1,-1,0;-1,-1,0,0,-1,-1,0;-1,-1,0,0,-1,-1,0;-1,-1,0,0,-1,-1,0;0,-1,0,0,-1,566,0;||||-108||||||||-101||||do_en,dm_en,t_en||||-110||||0,1,511,523,323;1,1,511,523,323;2,1,511,523,323;3,1,511,523,323;4,1,512,523,323;5,1,512,523,323;6,1,512,523,323;7,1,512,523,323;8,1,512,523,323;9,1,512,523,323;10,1,512,523,323;11,1,512,523,323;12,1,512,523,323;13,1,512,523,323;14,1,512,523,323;15,1,512,523,323;16,1,512,523,323;17,1,512,523,323;18,1,512,523,323;19,1,512,523,323;20,1,512,523,323;21,1,512,523,323;22,1,512,523,323;23,1,512,523,323;24,1,512,523,323;25,1,512,523,323;26,1,512,523,323;27,1,512,523,323;28,1,512,523,323;29,1,512,523,323;30,1,512,523,323;31,1,512,523,323;32,1,512,523,323;33,1,512,523,323;34,1,512,523,323;35,1,512,523,323;36,1,512,523,323;37,1,512,523,323;38,1,512,523,323;39,1,512,523,323;40,1,512,523,323;41,1,512,523,323;42,1,512,523,323;43,1,512,523,323;44,1,512,523,323;45,1,512,523,323;46,1,512,523,323;47,1,512,523,323;48,1,512,523,323;49,1,512,523,323;50,1,512,523,323;51,1,512,523,323;52,1,512,523,323;53,1,512,523,323;54,1,512,523,323;55,1,512,523,323;56,1,512,523,323;57,1,512,523,323;58,1,512,523,323;59,1,512,523,323;60,1,512,523,323;61,1,512,523,323;62,1,512,523,323;63,1,512,523,323;64,1,512,523,323;65,1,512,523,323;66,1,512,523,323;67,1,512,523,323;68,1,512,523,323;69,1,512,523,323;70,1,512,523,323;71,1,512,523,323;72,1,512,523,323;73,1,512,523,323;74,1,512,523,323;75,1,512,523,323;76,1,512,523,323;77,1,512,523,323;78,1,512,523,323;79,1,512,523,323;80,1,512,523,323;81,1,512,523,323;82,1,512,523,323;83,1,512,523,323;84,1,512,523,323;85,1,512,523,323;86,1,512,523,323;87,1,512,523,323;88,1,512,523,323;89,1,512,523,323;90,1,512,523,323;91,1,512,523,323;92,1,512,523,323;93,1,512,523,323;94,1,512,523,323;95,1,512,523,323;96,1,512,523,323;97,1,512,523,323;98,1,512,523,323;99,1,512,523,323;1607,3,26307,849,243,-1;||||-117||||||||-109||||||||-102||||0,-1,0,0,-1,566,0;0,-1,0,0,1223,1223,0;0,-1,0,0,-1,566,0;||||-111||||||||-114||||||||-103||||||||-106||||9,2||||-115||||1,32,32,0,0,0,0,109,0,1678204591746,526,17952,0,0,2992,0,0,7,0,0,08A3A67A872787A1DA63B33C1B6F6266~-1~YAAQtto4faoFjjaGAQAAyLb0XQmN75m4SdNZL1Mhxzd6fBT2ehvIgWFgVBy17LBJba5URgSuHwAtvbQhzm/rXFQGm1a5mnqcZqW4hFtD7HXm26efjv/f+SD6FVCaQmQ4U1sWpr0Uw7kxaEKtOZwmIS0Lx3g4lm6q/jwResUdTJX//gxTjv1aOnE2GhvB/KjPiEpW2uA/eOaxT2oMSSDYWakxqRgblkhagV+RR1YJ67f0S0vPkYMoZYvoS2Ni0UHOOzBbDYPYErAcO+d66tglpJWBd/pwp0hLeeVc1z0Hh3a3yUfzFQf+2XINO7x6By/u/3QNTg208ApArF4LYKxH4BPmb2S69MvN/nGTTP6gjuZaGA3r4GlYQfV/3DpEkJU96Wg3R8iPczz5zJ7XTZzPp5fXqAMs1S0qP2XugZtRbxlhgfKWFP7ot8JXOmFTqTfUkWiSa+nyEA==~-1~-1~-1,41950,47,55285803,30261693,PiZtE,14781,57,0,-1,0||||-112||||https://wizzair.com/en-gb#/booking/select-flight/TLV/LTN/2023-03-10/null/1/0/0/null||||-119||||-1||||-122||||0,0,0,0,1,0,0||||-123||||||||-124||||||||-126||||||||-127||||01301044241322243122||||-128||||,0,070f409b82df3bdd2f51a6415c7895353c153c47fe6dd8a0f87f3d14c46ccb2b,4,8,5,1,8,5,1,Google Inc. (ATI Technologies Inc.),ANGLE (ATI Technologies Inc., AMD Radeon RX 560 OpenGL Engine, OpenGL 4.1),1,940925d1b20db7e9ace7d42cb9f7efb38d0d1b3e77f44b62f059f99f534425ac||||-131||||4294705152,25867343,4268837809,100,350,1,1,1,0,1||||-132||||0,841583dac09a721cf2d2c57a09180590d9939b2b73219e5cc6b1dc72b2b04594,0123456789101112,Reload,-1||||-133||||||||-70||||-841148590;-1;dis;,7;true;true;true;-480;true;24;24;true;false;-1||||-80||||5059||||-90||||8|1||||-116||||0||||-129||||5a4dd815976b96d7332ee11d4ad4f22fbd9d8484fb33b68201be1b71ded52cf3,1,d4e06ee2f99cda3a5513c1d789b160f7e89199ffd53ce46874be61c7b1974f60,Google Inc. (ATI Technologies Inc.),ANGLE (ATI Technologies Inc., AMD Radeon RX 560 OpenGL Engine, OpenGL 4.1),2cd06f89ccaf413c4875680e907893d902d434005dea52a232d420825cd4fa5f,28"
//
//bmsz := "F7BF54E40B51C55E0818DC07CD173D3D~YAAQtto4fZOUjTaGAQAAu2TuXRLag7FMMOcGVWfM6R1TuxY9u8Z+UDLtA8qE03/kyE1u1gycaSyEWy9GEbaHoyc2CT7Gqokpc8mxNY8qoEITjbsXZlhLE9Zm2K7ekUb1wAsxocavW2rsJTBvlEfYAcPs6/04ASA1QueCbMErtMm5Jqg7MnPVmCym75ewsP6qihOts07wgEWNkbSsdaHzQf4cm3uHxirh3o91GojyUSGrxRcFRn4NJlQtxIX/PrOsUr4HyxcYTAX+WUh6QyBCzGQ4pNgiszuc4R9OdAy3XGc6LzUP7PBIl5fz6OpZUj2gTJT2j5WPOn2I469jdYrZCAMoajftNJ9nrdy36vkz9S+Xp3z7dh9btp+Q+bpRYd1M9zhtmlmHxTTSv7rs6sOBHE/tmvEHXtc=~3748403~3683895"
//
//data := strings.Split(datas, "||||")
//println(GenSensorData(data, bmsz))
}
package main
import (
"encoding/json"
"fmt"
http "github.com/bogdanfinn/fhttp"
tls_client "github.com/bogdanfinn/tls-client"
"io"
"io/ioutil"
"net/url"
"strings"
"sync"
"test/model"
"time"
)
func query(data []byte) {
v := model.Akm{}
json.Unmarshal(data, &v)
fmt.Println(v)
jar := tls_client.NewCookieJar()
options := []tls_client.HttpClientOption{
tls_client.WithTimeoutSeconds(30),
tls_client.WithClientProfile(tls_client.Chrome_110),
tls_client.WithNotFollowRedirects(),
tls_client.WithCookieJar(jar), // create cookieJar instance and pass it as argument
//tls_client.WithProxyUrl("http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600"),
tls_client.WithProxyUrl("http://127.0.0.1:8888"),
tls_client.WithInsecureSkipVerify(),
}
uri, _ := url.Parse("https://www.easyjet.com/")
var cookies []*http.Cookie
for key, value := range v.Cookies {
cookies = append(cookies, &http.Cookie{
Name: key,
Value: value,
})
}
jar.SetCookies(uri, cookies)
Client, err := tls_client.NewHttpClient(tls_client.NewNoopLogger(), options...)
req, err := http.NewRequest("GET", "https://www.easyjet.com/ejavailability/api/v66/availability/query?AdditionalSeats=0&AdultSeats=1&ArrivalIata=LGW&ChildSeats=0&DepartureIata=BFS&IncludeAdminFees=true&IncludeFlexiFares=false&IncludeLowestFareSeats=true&IncludePrices=true&Infants=0&IsTransfer=false&LanguageCode=EN&MaxDepartureDate=2023-03-20&MinDepartureDate=2023-03-18", nil)
if err != nil {
panic(err)
}
req.Header = http.Header{
"accept": {"*/*"},
"accept-language": {"de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"},
"user-agent": {"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36"},
http.HeaderOrderKey: {
"accept",
"accept-language",
"user-agent",
},
}
resp, err := Client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("响应结果", resp.StatusCode)
readBytes, _ := io.ReadAll(resp.Body)
fmt.Println(string(readBytes))
}
func main() {
for i := 0; i < 1; i++ {
t1 := time.Now()
fmt.Println(t1)
wg := sync.WaitGroup{}
for i := 0; i < 2; i++ {
wg.Add(1)
go func() {
defer wg.Done()
//172.29.204.120
//resp, err := http.Post("http://172.29.199.203:9999/get-proxy", "application/x-www-form-urlencoded", strings.NewReader("name=NK&type=other&country=us"))
//resp, err := http.Get("http://127.0.0.1:9999/ping")
//resp, err := http.Post("http://lcc.unififi.com/proxy/get-proxy", "application/json", strings.NewReader("{\n \"name\": \"NK\",\n \"type\": \"shopping\"\n}"))
resp, err := http.Post("http://127.0.0.1:19999/akamai/gen", "application/json", strings.NewReader("{\"type\": \"u2\", \"proxy\": \"http://127.0.0.1:8888\"}"))
if err != nil {
//panic(err)
fmt.Println(err)
return
}
body, _ := ioutil.ReadAll(resp.Body)
query(body)
}()
}
wg.Wait()
fmt.Println("cost", time.Since(t1).String())
time.Sleep(time.Second * 5)
}
}
package util
import (
"encoding/json"
"net/http"
)
func GetPostJson(r *http.Request) map[string]interface{} {
formData := make(map[string]interface{})
// 调用json包的解析,解析请求body
json.NewDecoder(r.Body).Decode(&formData)
return formData
}
package util
import (
"encoding/json"
"fmt"
"net/http"
)
type Response struct {
Code int `json:"code"`
Message string `json:"message"`
Cookies map[string]string `json:"cookies"`
Ua string `json:"ua"`
}
func WriteJson(w http.ResponseWriter, obj interface{}) error {
jsonBytes, err := json.Marshal(obj)
if err != nil {
return err
}
fmt.Fprintln(w, string(jsonBytes))
return nil
}
func ErrorJson(msg string) map[string]interface{} {
res := make(map[string]interface{})
res["code"] = 500
res["message"] = msg
return res
}
func RespJson(msg map[string]interface{}) map[string]interface{} {
res := make(map[string]interface{})
res["code"] = 200
for k, v := range msg {
res[k] = v
}
return res
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment