Added platform input to user agent spoofing

This commit is contained in:
z0ccc 2022-11-01 23:46:10 -04:00
parent 92cc65fecf
commit 1258acdfeb
3 changed files with 91 additions and 61 deletions

View file

@ -3,6 +3,7 @@ import { Box, Label, Radio, Flex, Select } from 'theme-ui'
import DebouncedInput from '../../Components/DebouncedInput'
import userAgents from '../../../utils/userAgents'
import detachDebugger from '../../../utils/detachDebugger'
import attachCurrentTab from '../../../utils/attachCurrentTab'
import Page from '../../Components/Page'
import CheckBox from '../../Components/CheckBox'
import FooterLink from '../../Components/FooterLink'
@ -16,15 +17,17 @@ const UserAgentPage = ({ tab }: UserAgentPageProps) => {
const [operatingSystem, setOperatingSystem] = useState('Windows')
const [browser, setBrowser] = useState('Chrome')
const [userAgent, setUserAgent] = useState(navigator.userAgent)
const [platform, setPlatform] = useState(navigator.platform)
useEffect(() => {
chrome.storage.local.get(
['userAgentType', 'operatingSystem', 'browser', 'userAgent'],
['userAgentType', 'operatingSystem', 'browser', 'userAgent', 'platform'],
(storage) => {
storage.userAgentType && setUserAgentType(storage.userAgentType)
storage.operatingSystem && setOperatingSystem(storage.operatingSystem)
storage.browser && setBrowser(storage.browser)
storage.userAgent && setUserAgent(storage.userAgent)
storage.platform && setPlatform(storage.platform)
}
)
}, [])
@ -36,38 +39,45 @@ const UserAgentPage = ({ tab }: UserAgentPageProps) => {
if (e.target.value === 'default') {
setUserAgent(navigator.userAgent)
setPlatform(navigator.platform)
chrome.storage.local.set({
userAgent: '',
platform: '',
})
} else if (e.target.value === 'preloaded') {
setUserAgent(userAgents[operatingSystem][browser])
setUserAgent(userAgents[operatingSystem]['userAgents'][browser])
setPlatform(userAgents[operatingSystem]['platform'])
chrome.storage.local.set({
userAgent: userAgents[operatingSystem][browser],
userAgent: userAgents[operatingSystem]['userAgents'][browser],
platform: userAgents[operatingSystem]['platform'],
})
}
}
const changeOperatingSystem = (e: ChangeEvent<HTMLSelectElement>) => {
const changeOperatingSystem = async (e: ChangeEvent<HTMLSelectElement>) => {
detachDebugger()
setOperatingSystem(e.target.value)
setUserAgent(userAgents[e.target.value][browser])
setUserAgent(userAgents[e.target.value]['userAgents'][browser])
setPlatform(userAgents[e.target.value]['platform'])
chrome.storage.local.set({
userAgent: userAgents[e.target.value][browser],
userAgent: userAgents[e.target.value]['userAgents'][browser],
platform: userAgents[e.target.value]['platform'],
operatingSystem: e.target.value,
})
await attachCurrentTab()
}
const changeBrowser = (e: ChangeEvent<HTMLSelectElement>) => {
detachDebugger()
setBrowser(e.target.value)
setUserAgent(userAgents[operatingSystem][e.target.value])
setUserAgent(userAgents[operatingSystem]['userAgents'][e.target.value])
chrome.storage.local.set({
userAgent: userAgents[operatingSystem][e.target.value],
userAgent: userAgents[operatingSystem]['userAgents'][e.target.value],
browser: e.target.value,
})
}
const changeUserAgent = () => {
const changeTextInput = () => {
if (userAgentType !== 'custom') {
setUserAgentType('custom')
chrome.storage.local.set({
@ -139,11 +149,13 @@ const UserAgentPage = ({ tab }: UserAgentPageProps) => {
onChange={changeBrowser}
mb={'8px'}
>
{Object.keys(userAgents[operatingSystem]).map((key) => (
<option value={key} key={key}>
{key}
</option>
))}
{Object.keys(userAgents[operatingSystem]['userAgents']).map(
(key) => (
<option value={key} key={key}>
{key}
</option>
)
)}
</Select>
</Box>
</Flex>
@ -153,15 +165,15 @@ const UserAgentPage = ({ tab }: UserAgentPageProps) => {
title="User Agent"
value={userAgent}
setValue={setUserAgent}
onChange={changeUserAgent}
onChange={changeTextInput}
mb="12px"
/>
<DebouncedInput
name="platform"
title="Platform"
value={navigator.platform}
setValue={setUserAgent}
onChange={changeUserAgent}
value={platform}
setValue={setPlatform}
onChange={changeTextInput}
mb="12px"
/>
{userAgentType !== 'default' && (

View file

@ -11,8 +11,10 @@ const attachDebugger = (tabId: number) => {
'locale',
'localeMatchIP',
'userAgent',
'platform',
],
(storage) => {
console.log(storage)
if (
storage.timezone ||
storage.lat ||
@ -77,15 +79,15 @@ const attachDebugger = (tabId: number) => {
)
}
if (storage.userAgent) {
if (storage.userAgent || storage.platform) {
chrome.debugger.sendCommand(
{ tabId: tabId },
'Emulation.setUserAgentOverride',
{
userAgent: storage.userAgent,
platform: storage.platform,
}
// { acceptLanguage: "en-CA" },
// { platform: "WebTV OS" }
)
}
}

View file

@ -1,54 +1,70 @@
const userAgents: any = {
Windows: {
Chrome:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
Edge: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36 Edg/103.0.1264.62',
Firefox:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0',
Brave:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Brave Chrome/83.0.4103.116 Safari/537.36',
platform: 'Win32',
userAgents: {
Chrome:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
Edge: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36 Edg/103.0.1264.62',
Firefox:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0',
Brave:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Brave Chrome/83.0.4103.116 Safari/537.36',
},
},
Mac: {
Safari:
'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Safari/605.1.15',
Chrome:
'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
Edge: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36 Edg/103.0.1264.62',
Firefox:
'Mozilla/5.0 (Macintosh; Intel Mac OS X 12.4; rv:102.0) Gecko/20100101 Firefox/102.0',
Brave:
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Brave Chrome/83.0.4103.116 Safari/537.36',
platform: 'MacIntel',
userAgents: {
Safari:
'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Safari/605.1.15',
Chrome:
'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
Edge: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36 Edg/103.0.1264.62',
Firefox:
'Mozilla/5.0 (Macintosh; Intel Mac OS X 12.4; rv:102.0) Gecko/20100101 Firefox/102.0',
Brave:
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Brave Chrome/83.0.4103.116 Safari/537.36',
},
},
Linux: {
Chrome:
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
Edge: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.44',
Firefox:
'Mozilla/5.0 (X11; Linux i686; rv:102.0) Gecko/20100101 Firefox/102.0',
Brave:
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Brave Chrome/80.0.3987.99 Safari/537.36',
platform: 'Linux x86_64',
userAgents: {
Chrome:
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
Edge: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.44',
Firefox:
'Mozilla/5.0 (X11; Linux i686; rv:102.0) Gecko/20100101 Firefox/102.0',
Brave:
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Brave Chrome/80.0.3987.99 Safari/537.36',
},
},
Android: {
Samsung:
'Mozilla/5.0 (Linux; Android 12; SAMSUNG SM-G991B) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/16.0 Chrome/92.0.4515.166 Mobile Safari/537.36',
Chrome:
'Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.71 Mobile Safari/537.36',
Edge: 'Mozilla/5.0 (Linux; Android 10; HD1913) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.71 Mobile Safari/537.36 EdgA/100.0.1185.50',
Firefox:
'Mozilla/5.0 (Android 12; Mobile; rv:68.0) Gecko/68.0 Firefox/102.0',
Brave:
'Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Mobile Safari/537.36',
platform: 'Linux armv8l',
userAgents: {
Samsung:
'Mozilla/5.0 (Linux; Android 12; SAMSUNG SM-G991B) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/16.0 Chrome/92.0.4515.166 Mobile Safari/537.36',
Chrome:
'Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.71 Mobile Safari/537.36',
Edge: 'Mozilla/5.0 (Linux; Android 10; HD1913) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.71 Mobile Safari/537.36 EdgA/100.0.1185.50',
Firefox:
'Mozilla/5.0 (Android 12; Mobile; rv:68.0) Gecko/68.0 Firefox/102.0',
Brave:
'Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Mobile Safari/537.36',
},
},
iOS: {
Safari:
'Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1',
Chrome:
'Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/103.0.5060.63 Mobile/15E148 Safari/604.1',
Edge: 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 EdgiOS/100.1185.50 Mobile/15E148 Safari/605.1.15',
Firefox:
'Mozilla/5.0 (iPhone; CPU iPhone OS 12_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/102.0 Mobile/15E148 Safari/605.1.15',
Brave:
'Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.38 (KHTML, like Gecko) Brave/1.2.9 Mobile/14A5297c Safari/602.1.38',
platform: 'iPhone',
userAgents: {
Safari:
'Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1',
Chrome:
'Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/103.0.5060.63 Mobile/15E148 Safari/604.1',
Edge: 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 EdgiOS/100.1185.50 Mobile/15E148 Safari/605.1.15',
Firefox:
'Mozilla/5.0 (iPhone; CPU iPhone OS 12_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/102.0 Mobile/15E148 Safari/605.1.15',
Brave:
'Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.38 (KHTML, like Gecko) Brave/1.2.9 Mobile/14A5297c Safari/602.1.38',
},
},
}