Yọ IP proxy àti àwọn èbúté hex jáde láti inú JSON tí a fi sínú
Ṣe àtúpalẹ̀ àwọn ẹrù JSON tí a mọ̀ láti inú àwọn ìpè script àwọn àkójọ proxy, kí o sì túmọ̀ èbúté hex nìkan nígbà tí fọ́mátì orísun bá sọ bẹ́ẹ̀.
Tábìlì HTML òfìfo kì í fi i hàn nígbà gbogbo pé ìdáhùn kò ní àwọn àkọsílẹ̀ proxy. Àwọn àkójọ kan máa ń fi àwọn ohun JSON sínú àwọn ìpè JavaScript, wọ́n á sì fi àwọn ìlà kún un lẹ́yìn.
Fún orísun tí a ti gbà tẹ́lẹ̀ tí ó ń lo ìbòmọ́ pàtó gp.insertPrx tí ohun JSON kan tẹ̀le:
import ipaddress
import json
import re
decoder = json.JSONDecoder()
endpoints = set()
for marker in re.finditer(r"gp[.]insertPrx\(\s*", html):
try:
row, end = decoder.raw_decode(html, marker.end())
if not isinstance(row, dict):
continue
address = ipaddress.ip_address(row["PROXY_IP"])
port = int(row["PROXY_PORT"], 16)
except (ValueError, KeyError, TypeError):
continue
if 1 <= port <= 65535 and html[end:].lstrip().startswith(");"):
endpoints.add((str(address), port))
html ni ọ̀rọ̀ orísun, kì í ṣe ohun aṣàwákiri. Àfihàn ìtẹ̀síwájú máa ń wá ìbòmọ́ tí a mọ̀; JSONDecoder máa ń pinnu ibi tí iye JSON parí. Èyí yẹra fún ìgbìyànjú láti ṣe àtúpalẹ̀ JSON tí ó wà nínú ìgbà pẹ̀lú àfihàn ìtẹ̀síwájú nìkan.
Pápá èbúté nínú àpẹẹrẹ jẹ́ hex ní gbangba: C38 túmọ̀ sí 3128 ìdá mẹ́wàá. Má ṣe lo ìpìlẹ̀ 16 lórí pápá ìdá mẹ́wàá ti olùpèsè mìíràn kìkì nítorí pé a ń pè àwọn méjèèjì ní èbúté.
Èyí jẹ́ olùtúpalẹ̀ fún fọ́mátì tí a sọ, kì í ṣe olùtúmọ̀ JavaScript. Àwọn àkọsílẹ̀ ohun tí ó ní àmì àfikún kan, àwọn iye tí a ṣe ìṣirò àti àwọn gbólóhùn JavaScript mìíràn nílò ojú-ìwé dátà mìíràn tí a kọ sílẹ̀. Má ṣe ṣiṣẹ́ kóòdù ojú-ìwé àìnídìí láti gba àkójọ ibi-ìparí.
Ṣe àyẹ̀wò májẹ̀mú orísun kí o sì pa àwọn pápá ìlànà mọ́ lọ́tọ̀. Tí orísun bá ní àwọn ìlà HTML tí a kún nínú rẹ̀, lo yíyọ ibi-ìparí ní ìlà dípò olùtúpalẹ̀ ìbòmọ́ JavaScript yìí. Yíyọ àdírẹ́sì àti èbúté kò fi hàn pé ibi-ìparí náà ń pèsè iṣẹ́ proxy tí ó ṣe é lò ní báyìí.