Commit fff90116 authored by 王明明's avatar 王明明

1111

parent 6143bb0a
This diff is collapsed.
......@@ -4,7 +4,10 @@ import (
"github.com/gorilla/mux"
"github.com/sirupsen/logrus"
"net/http"
"strconv"
"strings"
sensor2 "test/sensor"
sensor "test/sensor_common"
"test/util"
"time"
)
......@@ -67,4 +70,16 @@ func checkPostRequire(data map[string]string) bool {
}
func InitRouter(r *mux.Router) {
r.HandleFunc("/gen", routeAkm)
r.HandleFunc("/sensor", genSensor)
}
func genSensor(w http.ResponseWriter, r *http.Request) {
data := util.GetPostJson(r)
logrus.Info("请求一次sensor", data)
i, _ := strconv.Atoi(data["times"])
res := sensor.GenData(i, data["abck"], data["bm_sz"], data["ua"], data["url"])
res, ua := sensor2.GenData(i, data["abck"], data["bm_sz"], data["url"])
util.WriteJson(w, util.ErrorJson(res+"||||"+ua))
}
......@@ -11,10 +11,7 @@ const (
U2Url = "https://www.easyjet.com/en"
U2PostUrl = "https://www.easyjet.com/en/buy/flights?isOneWay=on&pid=www.easyjet.com"
VYUrl = "https://m.vueling.com"
VYPostUrl = "https://m.vueling.com/SB"
NKURL = "https://www.spirit.com"
NKPostUrl = "https://www.spirit.com"
VYPostUrl = "https://m.vueling.com"
EWUrl = "https://www.eurowings.com/"
EWPostUrl = "https://www.eurowings.com/"
)
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 sensor
import (
"fmt"
"math"
"math/rand"
"strconv"
)
func GetRandomTime() int64 {
f := rand.Float64()*100 + 30
return int64(int(math.Floor(f)))
}
type KeyEventInfo struct {
keyCode string
charCode int
shiftKey bool
ctrlKey bool
metaKey bool
altKey bool
}
func ItoS(s int) string {
return strconv.Itoa(s)
}
func (akm *AkmEvent) event108(keyType int, delay int64, e *KeyEventInfo) {
if akm.ke_cnt >= akm.ke_cnt_lmt {
return
}
s := now() - akm.startTs + delay
n := -2
l := 0
d := 0
k := 0
u := fmt.Sprintf("%d,%d,%d,%d,%d,%d,%d;", akm.ke_cnt, keyType, s, n, l, d, k)
akm.kact = akm.kact + u
akm.ke_vel = akm.ke_vel + akm.ke_cnt + keyType + int(s) + n + d + k
akm.ta += s
akm.ke_cnt++
}
func (akm *AkmEvent) ActivateKeyEvent(keycode string) {
keyEventInfo := &KeyEventInfo{altKey: false, shiftKey: false, metaKey: false, ctrlKey: false, charCode: 0, keyCode: keycode}
t := GetRandomTime()
akm.event108(1, t, keyEventInfo)
akm.event108(2, t+2, keyEventInfo)
akm.event108(3, t*2, keyEventInfo)
}
// todo 110
func (akm *AkmEvent) ActivateMouseEvent(keycode string) {
keyEventInfo := &KeyEventInfo{altKey: false, shiftKey: false, metaKey: false, ctrlKey: false, charCode: 0, keyCode: keycode}
t := GetRandomTime()
akm.event108(1, t, keyEventInfo)
akm.event108(2, t+2, keyEventInfo)
akm.event108(3, t*2, keyEventInfo)
}
func (akm *AkmEvent) ActivateDeviceMotionEvent() {
t := GetRandomTime()
akm.event109(t)
}
func (akm *AkmEvent) event109(delay int64) {
s := now() - akm.startTs + delay
e := -1
n := -1
o := -1
// e = t["acceleration"]["x"], n = t["acceleration"]["y"], o=t["acceleration"]["z"]
m := -1
r := -1
i := -1
c := -1
b := -1
d := -1
// m = t["accelerationIncludingGravity"]["x"], r = t["accelerationIncludingGravity"]["y"], i = t["accelerationIncludingGravity"]["z"];
// c = t["rotationRate"]["alpha"], b = t["rotationRate"]["beta"] ,d = t["rotationRate"]["gamma"];
akm.dmact = akm.dmact + fmt.Sprintf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d;", akm.dme_cnt, s, e, n, o, m, r, i, c, b, d)
akm.dme_vel = akm.dme_vel + akm.dme_cnt + int(s)
akm.ta += s
akm.dme_cnt++
}
func (akm *AkmEvent) event114(pointerType, x, y int, delay int64) {
s := now() - akm.startTs + delay
i := fmt.Sprintf("%d,%d,%d,%d,%d;", akm.pe_cnt, pointerType, s, x, y)
akm.pe_vel = akm.pe_vel + akm.pe_cnt + pointerType + int(s) + x + y
akm.pact = akm.pact + i
if pointerType == 1 {
akm.pme_cnt++
} else {
akm.pduce_cnt++
}
akm.pe_cnt++
akm.ta += s
}
func Random() {
}
func (akm *AkmEvent) ActivatePointerEvent() {
t := math.Floor(rand.Float64()*100 + 30)
x := math.Floor(rand.Float64()*229 + (229 / 2))
y := math.Floor(rand.Float64()*691 + (691 / 2))
akm.event114(3, int(x), int(y), int64(t))
akm.event114(4, int(x), int(y), int64(t))
}
func (akm *AkmEvent) ActivateOrientationEvent() {
t := GetRandomTime()
akm.event111(t)
}
func (akm *AkmEvent) event111(delay int64) {
s := now() - akm.startTs + delay
e := -1
n := -1
o := -1
akm.doact = akm.doact + fmt.Sprintf("%d,%d,%d,%d,%d;", akm.doe_cnt, s, e, n, o)
akm.ta += s
akm.doe_vel = akm.doe_vel + akm.doe_cnt + int(s)
akm.doe_cnt++
}
type AkmEvent struct {
startTs int64
// 总耗时
ta int64
// keyevent-108
ke_cnt int
kact string
ke_vel int
ke_cnt_lmt int
// mouseevent-110
me_vel int
me_cnt int
mact string
// devicemotionevent -109
dmact string
dme_vel int
dme_cnt int
// pointerevent -114
pe_cnt int
pe_vel int
pact string
pduce_cnt int
pme_cnt int
// deviceorientation -111
doact string
doe_vel int
doe_cnt int
// -117
te_vel int
tact string
tme_cnt int
te_cnt int
tduce_cnt int
}
func (akm *AkmEvent) ActivateRandomEvent() {
for i := 0; i < int(math.Floor(rand.Float64()*10+10)); i++ {
akm.ActivateKeyEvent("a")
}
for i := 0; i < int(math.Floor(rand.Float64()*5+2)); i++ {
akm.ActivateDeviceMotionEvent()
}
for i := 0; i < int(math.Floor(rand.Float64()*5+2)); i++ {
akm.ActivateOrientationEvent()
}
for i := 0; i < int(math.Floor(rand.Float64()*5+3)); i++ {
akm.ActivatePointerEvent()
}
}
func NewAkmEvent(startTs int64) *AkmEvent {
return &AkmEvent{startTs: startTs, ke_cnt_lmt: 150}
}
This diff is collapsed.
......@@ -13,9 +13,10 @@ import (
"strconv"
"strings"
"sync"
sensor2 "test/sensor"
sensor2 "test/sensor_common"
)
type Headers map[string]string
type AkmCommonTest struct {
Client tls_client.HttpClient
IntUrl string
......@@ -44,7 +45,7 @@ func (c *AkmCommonTest) getCommonCookie() (string, string) {
}
func (c *AkmCommonTest) abckSensorCommon(times int) string {
ua := ""
ua := "Mozilla/5.0 (Linux; Android 9; SM-N9500) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Mobile Safari/537.36"
for i := 0; i < times; i++ {
abck, bm_sz := c.getCommonCookie()
//datas := fmt.Sprintf("times=%d&abck=%s&bm_sz=%s&url=%s", i, abck, bm_sz, "https://www.spirit.com/")
......@@ -52,7 +53,8 @@ func (c *AkmCommonTest) abckSensorCommon(times int) string {
//rs, _ := io.ReadAll(r.Body)
//rsss := strings.Split(string(rs), "|||||")
//sensorData := rsss[0]
sensorData, ua := sensor2.GenData(i, abck, bm_sz, c.IntUrl)
sensorData := sensor2.GenData(i, abck, bm_sz, ua, c.IntUrl)
//sensorData, ua := sensor3.GenData(i, abck, bm_sz, c.IntUrl)
c.Ua = ua
//sensorData, ua := sensor.GenData(i, abck, bm_sz, "Mozilla/5.0 (Linux; Android 9; SM-N9500) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Mobile Safari/537.36", "https://www.spirit.com/")
//fmt.Println("ua", ua)
......@@ -62,7 +64,7 @@ func (c *AkmCommonTest) abckSensorCommon(times int) string {
req.Header.Set("accept", "*/*")
req.Header.Set("accept-language", "q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6")
req.Header.Set("cache-control", "no-cache")
req.Header.Set("content-type", "text/plain;charset=UTF-8")
req.Header.Set("origin", "https://www.spirit.com")
req.Header.Set("pragma", "no-cache")
req.Header.Set("referer", "https://www.spirit.com/")
......@@ -102,18 +104,26 @@ func (c *AkmCommonTest) Init() {
panic(err)
}
scripts := doc.Find("script")
sensorurl, ok := scripts.Last().Attr("src")
if ok != true {
panic(err)
last := scripts.Last()
for {
if v, ok := last.Attr("type"); ok && v == "text/javascript" {
url, ok := last.Attr("src")
if ok {
c.SensorUrl = url
break
}
} else {
last = last.Prev()
}
}
c.SensorUrl = sensorurl
fmt.Println(sensorurl)
fmt.Println(c.SensorUrl)
}
func main() {
initUrl := "https://www.jetstar.com"
initUrl := "https://www.eurowings.com/"
testUrl := "https://apimobile.vueling.com/Vueling.Mobile.AvailabilityService.WebAPI/api/V2/AvailabilityController/DoAirPriceSB"
testUrl = "https://booking.jetstar.com/cn/zh/booking/search-flights?Currency=AUD&adults=1&children=0&departuredate1=2023-03-21&destination1=SYD&dotcomFCOutboundArrivalTime=2023-03-21T16%3A20%3A00&dotcomFCOutboundCorrelationId=3ec39bb6-f959-4680-a974-93b35bf7d284&dotcomFCOutboundDepartureTime=2023-03-21T14%3A55%3A00&dotcomFCOutboundFare=87&dotcomFCOutboundFlightId=69814507&dotcomFCOutboundIncludeMember=False&dotcomFCOutboundMemberArrivalTime=2023-03-21T07%3A25%3A00&dotcomFCOutboundMemberCorrelationId=a1616c12-ddb2-4497-a0cd-c8eb6ab6b533&dotcomFCOutboundMemberDepartureTime=2023-03-21T06%3A00%3A00&dotcomFCOutboundMemberFare=0&dotcomFCOutboundMemberFlightId=69814650&dotcomFCOutboundMemberIncludeMember=Only&dotcomFCOutboundMemberPriceShown=false&dotcomFCOutboundPriceShown=false&dotcomFCPricesHidden=false&infants=0&origin1=AVV"
testUrl = "me=2023-03-21T16%3A20%3A00&dotcomFCOutboundCorrelationId=3ec39bb6-f959-4680-a974-93b35bf7d284&dotcomFCOutboundDepartureTime=2023-03-21T14%3A55%3A00&dotcomFCOutboundFare=87&dotcomFCOutboundFlightId=69814507&dotcomFCOutboundIncludeMember=False&dotcomFCOutboundMemberArrivalTime=2023-03-21T07%3A25%3A00&dotcomFCOutboundMemberCorrelationId=a1616c12-ddb2-4497-a0cd-c8eb6ab6b533&dotcomFCOutboundMemberDepartureTime=2023-03-21T06%3A00%3A00&dotcomFCOutboundMemberFare=0&dotcomFCOutboundMemberFlightId=69814650&dotcomFCOutboundMemberIncludeMember=Only&dotcomFCOutboundMemberPriceShown=false&dotcomFCOutboundPriceShown=false&dotcomFCPricesHidden=false&infants=0&origin1=AVV"
testUrl = "https://www.eurowings.com/content/eurowings/us/booking/flights/flight-search/book-flights.booking.json"
testBody := ""
wg := &sync.WaitGroup{}
for i := 0; i < 1; i++ {
......@@ -161,17 +171,32 @@ func (c *AkmCommonTest) commonTest(testUrl, testBody string) {
req, _ = http.NewRequest("GET", testUrl, nil)
}
req.Header.Set("Host", "booking.jetstar.com")
req.Header.Set("sec-ch-ua-mobile", "?0")
req.Header.Set("upgrade-insecure-requests", "1")
req.Header.Set("user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36")
req.Header.Set("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")
req.Header.Set("sec-fetch-site", "same-site")
req.Header.Set("sec-fetch-mode", "navigate")
req.Header.Set("sec-fetch-user", "?1")
req.Header.Set("sec-fetch-dest", "document")
req.Header.Set("accept-language", "en-US,en;q=0.9")
var headers = Headers{
"Host": "www.eurowings.com",
"sec-ch-ua": "\"Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111\"",
"accept": "application/json, text/plain, */*",
"sec-ch-ua-mobile": "?0",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36",
"sec-ch-ua-platform": "\"Windows\"",
"sec-fetch-site": "same-origin",
"sec-fetch-mode": "cors",
"sec-fetch-dest": "empty",
"referer": "https://www.eurowings.com/us/booking/flights/flight-search.html?isReward=false&source=web&destination=BCN&origins=030&origin=030&fromdate=2023-05-12&triptype=oneway&adults=1&children=0&infants=0&lng=en-US",
"accept-language": "en-US,en;q=0.9",
}
for k, v := range headers {
req.Header.Set(k, v)
}
//req.Header.Set("Host", "booking.jetstar.com")
//req.Header.Set("sec-ch-ua-mobile", "?0")
//req.Header.Set("upgrade-insecure-requests", "1")
//req.Header.Set("user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36")
//req.Header.Set("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")
//req.Header.Set("sec-fetch-site", "same-site")
//req.Header.Set("sec-fetch-mode", "navigate")
//req.Header.Set("sec-fetch-user", "?1")
//req.Header.Set("sec-fetch-dest", "document")
//req.Header.Set("accept-language", "en-US,en;q=0.9")
//req.Header.Set("user-agent", "Mozilla/5.0 (Linux; Android 9; SM-N9500) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Mobile Safari/537.36")
req.Header.Set("user-agent", c.Ua)
resp, err := c.Client.Do(req)
......
......@@ -13,7 +13,6 @@ import (
"strconv"
"strings"
"sync"
"test/sensor"
)
func getCookie(client tls_client.HttpClient) (string, string) {
......@@ -37,14 +36,15 @@ var UA string
func abckSensor(client tls_client.HttpClient, sensorurl string) {
for i := 0; i < 4; i++ {
abck, bm_sz := getCookie(client)
//datas := fmt.Sprintf("times=%d&abck=%s&bm_sz=%s&url=%s", i, abck, bm_sz, "https://www.spirit.com/")
//r, _ := http.Post("http://127.0.0.1:3033/akm2t", "application/x-www-form-urlencoded", strings.NewReader(datas))
//rs, _ := io.ReadAll(r.Body)
//rsss := strings.Split(string(rs), "|||||")
//sensorData := rsss[0]
//UA = rsss[1]
datas := fmt.Sprintf("times=%d&abck=%s&bm_sz=%s&url=%s", i, abck, bm_sz, "https://www.spirit.com/")
r, _ := http.Post("http://127.0.0.1:3033/akm2t", "application/x-www-form-urlencoded", strings.NewReader(datas))
rs, _ := io.ReadAll(r.Body)
rsss := strings.Split(string(rs), "|||||")
sensorData := rsss[0]
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"
//if i == 2 {
sensorData, UA := sensor.GenData(i, abck, bm_sz, "https://www.spirit.com/")
// sensorData, UA = sensor.GenData(i, abck, bm_sz, "https://www.spirit.com/")
//}
fmt.Println("ua", UA)
sensor := "{\"sensor_data\":\"" + sensorData + "\"}"
......
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