Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Pitoniso

#1
Al tener IP falsa es posible decirle al Pc que tengo en mi casa que se conecte a mi, tengo el puerto 80 y el 21 de mi RED abiertos....sugerencias...

Gracias de antemano...
#2
Ingeniería Inversa / Aclarenme esto pls!!
31 Julio 2007, 23:22 PM
Bueno gente a lo que voy si yo estoy por detras de un firewall (IP FALSA, logicamente) puedo de alguna manera hacer que el Pc que esta en mi casa de conecte a mi....

Tengo el puerto 21 y el 80 abiertos.....

Ideas.... Pls no tengo ni el 22 ni el 443 abiertos.... arriba estan los 2 unicos..


Gracias cualquier respuesta siempre ayuda a idear ideas...

Thx
#3
Que desamblador me recomiendan...GRacias...
#4
Ya tengo casi echa una aplicacion cliente--proxy--servidor donde se comunican logicamente usando HTTP, el asunto es que necesito mantener una unica conexion entre ellos y no tengo la menor idea de como, lo que busco exactamente que parametros le tengo que pasar al proxy para que no me cierre esa conexion....o si necesito de SOCKETS o alguna otra cosa...IDEAS SOLUCIONES tirenme algoooo....

Thx

Por favor si alguien me responde (que se lo agradezco mucho XD) que las respuesta sean fundadas, pruebenla o basense en algo solido para no perder tiempo y aprovechar al maximo cada escrito....

GRacias espero haber sido claro...respecto a mi duda!!!
#5
PHP / Ssh con PHP!!!
21 Junio 2007, 23:49 PM
Vale ya he logrado conectarme a mi SERVER SSH he pasado algunos comandillos, entre otras boberias....

A lo que voy es posible hacer tunneling (forwarding), o sea navegar por internet, chatear, cmo si fuera un tipico soft como el putty entre otros..

Estuve mirando la opcion del Tunnel pero no encuentro una idea para usarlo...

Una vez que me logueo en el Server SSH...y por ejemplo ejecuto algun comando la conexion se cierra o se mantiene??????

GRacias!!!
#6
Aqui les dejo sobre el tema que yo estaba hablando sobre decirle al servidor que abriera un X web y me la mostrara sin yo meterme en eso, puesto que mi firewall es un dolor de ass...

Este es el Script

<?php

#
# Surrogafier v1.0-rc3
#
# Author: Brad Cable
# Email: brad@bcable.net
# License: Modified BSD
# License Details:
# http://bcable.net/license.php
#


# CONFIG {{{

# Default to simple mode when the page is loaded. [false]
define('DEFAULT_SIMPLE',false);
# Force the page to always be in simple mode (no advanced mode option). [false]
define('FORCE_SIMPLE',false);
# Width for the URL box when in simple mode (CSS "width" attribute). [300px]
define('SIMPLE_MODE_URLWIDTH','300px');

# Default value for tunnel server. []
define('DEFAULT_TUNNEL_PIP','');
# Default value for tunnel port. []
define('DEFAULT_TUNNEL_PPORT','');
# Should the tunnel fields be displayed? "false" value here will force the defaults above [true]
define('FORCE_DEFAULT_TUNNEL',true);

# Default value for "Persistent URL" checkbox [true]
define('DEFAULT_URL_FORM',true);
# Default value for "Remove Cookies" checkbox [false]
define('DEFAULT_REMOVE_COOKIES',false);
# Default value for "Remove Referer Field" checkbox [false]
define('DEFAULT_REMOVE_REFERER',false);
# Default value for "Remove Scripts" checkbox [false]
define('DEFAULT_REMOVE_SCRIPTS',false);
# Default value for "Remove Objects" checkbox [false]
define('DEFAULT_REMOVE_OBJECTS',false);
# Default value for "Encrypt URLs" checkbox [false]
define('DEFAULT_ENCRYPT_URLS',false);
# Default value for "Encrypt Cookies" checkbox [false]
define('DEFAULT_ENCRYPT_COOKS',false);

/*/ Address Blocking Notes \*\

Formats for address blocking are as follows:

  1.2.3.4     - plain IP address
  1.0.0.0/16  - subnet blocking
  1.0/16      - subnet blocking
  1/8         - subnet blocking
  php.net     - domain blocking

Default Value: '10/8','172/8','192.168/16','127/8','169.254/16'

\*\ End Address Blocking Notes /*/

$blocked_addresses=array('10/8','172/8','192.168/16','126/8','169.254/16');

# }}}

# ADVANCED CONFIG {{{

# The following options alter the way documents are parsed on the page.  ONLY EDIT THIS STUFF IF YOU REALLY KNOW WHAT YOU ARE DOING!

# 500 is the most reasonable number I could come up with as a maximum URL length limit
# I ran into a 1200+ character long URL once and it nearly melted the processor on my laptop trying to parse it
# Honestly, who needs this long of a URL anyway?
define('MAXIMUM_URL_LENGTH',500);

# Time limit in seconds for a single request and parse. [10]
define('TIME_LIMIT',10);
# Time limit in minutes for a DNS entry to be kept in the cache. [10]
define('DNS_CACHE_EXPIRE',10);

# Use gzip (if possible) to compress the connection between the proxy and the user (less bandwidth, more CPU) [false]
define('GZIP_PROXY_USER',false);
# Use gzip (if possible) to compress the connection between the proxy and the server (less bandwidth, more CPU) [false]
define('GZIP_PROXY_SERVER',false);

# Protocol that proxy is running on.  Uncomment this line to define it manually.
# If you leave this line commented, the code detects if you are running on an
# HTTPS connection.  If you are, then 'https' is used as the PROTO value,
# otherwise 'http' is used.  If you need a different value here, then define it.
#define('PROTO','http');

# }}}


// DON'T EDIT ANYTHING AFTER THIS POINT \\


#
# (unless you absolutely know what you are doing...)
#

# COOKIE & SESSION SETUP {{{

//$totstarttime=microtime(true); # BENCHMARK
//$blocked_addresses=array(); # DEBUG

# set error level to not display notices
error_reporting(E_ALL^E_NOTICE);

# set time limit to the defined time limit, if not in safe mode
if(!ini_get('safe_mode')) set_time_limit(TIME_LIMIT);

# use gzip compression if available
if(GZIP_PROXY_USER && extension_loaded('zlib') && !ini_get('zlib.output_compression')) ob_start('ob_gzhandler'); # use gzip encoding to compress all data, if possible

# reverse magic quotes if enabled
if(get_magic_quotes_gpc()){
   function stripslashes_recurse($var){
      if(is_array($var)) $var=array_map('stripslashes_recurse',$var);
      else $var=stripslashes($var);
      return $var;
   }
   $_GET=stripslashes_recurse($_GET);
   $_POST=stripslashes_recurse($_POST);
   $_COOKIE=stripslashes_recurse($_COOKIE);
}

# script environment constants
if(!defined('PROTO')) define('PROTO',($_SERVER['HTTPS']=='on'?'https':'http'));
define('VERSION','1.0-rc3');
define('THIS_SCRIPT',PROTO."://{$_SERVER['HTTP_HOST']}{$_SERVER['PHP_SELF']}");
define('SIMPLE_MODE',DEFAULT_SIMPLE || FORCE_SIMPLE);

# Randomized cookie prefixes #
function gen_randstr($len){
   $chars=null;
   for($i=0;$i<$len;$i++){
      $char=rand(0,25);
      $char=chr($char+97);
      $chars.=$char;
   }
   return $chars;
}

function dosetcookie($cookname,$cookval,$expire=null){
   $_COOKIE[$cookname]=$cookval;
   if($expire===null) setcookie($cookname,$cookval);
   else setcookie($cookname,$cookval,$expire);
}

define('FIRST_LOAD',empty($_COOKIE['PHPSESSID']));
session_start();
if(empty($_SESSION['sesspref'])){
   $sesspref=gen_randstr(30);
   $_SESSION['sesspref']=$sesspref;
}
else $sesspref=$_SESSION['sesspref'];

if(empty($_COOKIE['user'])){
   $cookpref=gen_randstr(12);
   dosetcookie('user',$cookpref);
}
else $cookpref=$_COOKIE['user'];

define('SESS_PREF',$sesspref);
define('COOK_PREF',$cookpref);
define('COOKIE_SEPARATOR','__'.COOK_PREF.'__');
unset($sesspref,$cookpref);

if(FIRST_LOAD){
   if(DEFAULT_URL_FORM) dosetcookie(COOK_PREF.'_url_form',true);
   if(DEFAULT_REMOVE_COOKIES) dosetcookie(COOK_PREF.'_remove_cookies',true);
   if(DEFAULT_REMOVE_REFERER) dosetcookie(COOK_PREF.'_remove_referer',true);
   if(DEFAULT_REMOVE_SCRIPTS) dosetcookie(COOK_PREF.'_remove_scripts',true);
   if(DEFAULT_REMOVE_OBJECTS) dosetcookie(COOK_PREF.'_remove_objects',true);
   if(DEFAULT_ENCRYPT_URLS) dosetcookie(COOK_PREF.'_encrypt_urls',true);
   if(DEFAULT_ENCRYPT_COOKS) dosetcookie(COOK_PREF.'_encrypt_cooks',true);
}

# }}}

# ENVIRONMENT SETUP {{{

global $postandget,$blocked_addresses,$dns_cache_array;
$postandget=array_merge($_GET,$_POST);

define('PAGETYPE_MINIREGEXP','(=[_\.\-]?\&=|=)?');
define('PAGETYPE_REGEXP','/^'.PAGETYPE_MINIREGEXP.'(.*)$/');
if(!empty($postandget[COOK_PREF])) $oenc_url=$postandget[COOK_PREF];
else{
   $pagetype_str=preg_replace(PAGETYPE_REGEXP,'\1',$_SERVER['QUERY_STRING']);
   define('QUERY_STRING',substr($_SERVER['QUERY_STRING'],strlen($pagetype_str),strlen($_SERVER['QUERY_STRING'])-strlen($pagetype_str)));
   define('PAGETYPE_NULL',0);
   define('PAGETYPE_FORCE_MAIN',1);
   define('PAGETYPE_FRAME_TOP',2);
   define('PAGETYPE_FRAMED_PAGE',3);
   define('PAGETYPE_FRAMED_CHILD',4); # framing children for crimes isn't very nice, but the script does it anyway
   switch($pagetype_str){
      case '=&=': define('PAGETYPE_ID',PAGETYPE_FRAME_TOP); break;
      case '=_&=': define('PAGETYPE_ID',PAGETYPE_FRAMED_PAGE); break;
      case '=-&=': define('PAGETYPE_ID',PAGETYPE_FORCE_MAIN); break;
      case '=.&=': define('PAGETYPE_ID',PAGETYPE_FRAMED_CHILD); break;
# this is one more unencoded string for future features
#      case '=*&=': define('PAGETYPE_ID',); break;
      default: define('PAGETYPE_ID',PAGETYPE_NULL); break;
   }
   unset($pagetype_str);

   define('NEW_PAGETYPE_FRAME_TOP',(PAGETYPE_ID===PAGETYPE_FRAMED_CHILD?PAGETYPE_FRAMED_CHILD:PAGETYPE_FRAME_TOP));
   define('NEW_PAGETYPE_FRAMED_PAGE',(PAGETYPE_ID===PAGETYPE_FRAMED_CHILD?PAGETYPE_FRAMED_CHILD:PAGETYPE_FRAMED_PAGE));

   $oenc_url=QUERY_STRING;
   //define('OENC_URL',urldecode(preg_replace('/^([^&]*).*?$/i','\1',QUERY_STRING)));
}
if(strpos(substr($oenc_url,0,6),'%')!==false || strpos($oenc_url,'%')<strpos($oenc_url,'/') || strpos($oenc_url,'%')<strpos($oenc_url,':')) $oenc_url=urldecode($oenc_url);
define('OENC_URL',preg_replace('/^([^\?\&]+)\&/i','\1?',$oenc_url));
unset($oenc_url);
define('ORIG_URL',proxdec(OENC_URL));
global $curr_url;
$curr_url=ORIG_URL;

function gethardattr($attr){
   global $postandget;
   return (empty($postandget[COOK_PREF.'_set_values'])?!empty($_COOKIE[COOK_PREF."_{$attr}"]):!empty($postandget[COOK_PREF."_{$attr}"]));
}
define('ENCRYPT_URLS',gethardattr('encrypt_urls'));
define('URL_FORM',gethardattr('url_form'));
define('PAGE_FRAMED',(PAGETYPE_ID===PAGETYPE_FRAMED_PAGE || PAGETYPE_ID===PAGETYPE_FRAMED_CHILD || QUERY_STRING=='js_regexps_framed' || QUERY_STRING=='js_funcs_framed'));
#define('URLVAR',(ENCRYPT_URLS?'e':null).'url');

# }}}

# PHP DECODING FUNCTIONS {{{

function my_base64_decode($string){ return base64_decode(str_replace(' ','+',urldecode($string))); }

function proxdec($url){
   if($url{0}!='~' && strtolower(substr($url,0,3))!='%7e') return $url;
   #while(strpos($url,'%')!==false) $url=urldecode($url);
   #$url=urldecode($url);
   while($url{0}=='~' || strtolower(substr($url,0,3))=='%7e'){
      $url=substr($url,1);
      $url=my_base64_decode($url);
      $new_url=null;
      for($i=0;$i<strlen($url);$i++){
         $char=ord($url{$i});
         $char-=ord(substr(SESS_PREF,$i%strlen(SESS_PREF),1));
         while($char<32) $char+=94;
         $new_url.=chr($char);
      }
      $url=$new_url;
   }
   return urldecode($url);
}

# }}}

# javascript ENCODING FUNCTIONS {{{

function js_proxenc(){ ?>
//<script>
<?php echo(COOK_PREF); ?>_pe={
expon:function(a,b){
   var num;
   if(b==0) return 1;
   num=a; b--;
   while(b>0){ num*=a; b--; }
   return num;
},

dectobin:function(){
   var dec=arguments[0],chars=arguments[1]||8,binrep="";
   for(j=chars-1;j>=0;j--){
      if(dec>=this.expon(2,j)){
         binrep+="1"; dec-=this.expon(2,j);
      }
      else binrep+="0";
   }
   return binrep;
},

bintodec:function(){
   var bin=arguments[0],chars=arguments[1]||8,dec=0;
   for(var j=0;j<chars;j++) if(bin.substring(j,j+1)=="1") dec+=this.expon(2,chars-1-j);
   return dec;
},

b64e:function(string){
   var encstr="",binrep="";
   var charbin,charnum;
   for(var i=0;i<string.length;i++){
      charnum=string.charCodeAt(i);
      binrep+=this.dectobin(charnum);
   }
   while(binrep.length%6) binrep+="00";
   for(var i=1;i*6<=binrep.length;i++){
      charbin=binrep.substring((i-1)*6,i*6);
      charnum=this.bintodec(charbin,6);
      if(charnum<=25) charnum+=65;
      else if(charnum<=51) charnum+=71;
      else if(charnum<=61) charnum-=4;
      else if(charnum==62) charnum=43;
      else if(charnum==63) charnum=47;
      encstr+=String.fromCharCode(charnum);
   }
   while(encstr.length%8) encstr+="=";
   return encstr;
},

proxenc:function(url){
   var new_url="";
   var charnum;
   if(url.substring(0,1)=="~" || url.substring(0,3).toLowerCase()=="%7e") return url;
   url=encodeURIComponent(url);
   var sess_pref="<?php echo(SESS_PREF); ?>";
   for(i=0;i<url.length;i++){
      charnum=url.charCodeAt(i);
      charnum+=sess_pref.charCodeAt(i%sess_pref.length);
      while(charnum>126) charnum-=94;
      new_url+=String.fromCharCode(charnum);
   }
   return "~"+encodeURIComponent(this.b64e(new_url));
}
}
<? }

# }}}

# FIRST PAGE DISPLAYED WHEN ACCESSING PROXY {{{

if(PAGETYPE_ID===PAGETYPE_FORCE_MAIN || (substr(QUERY_STRING,0,3)!='js_' && ORIG_URL==null)){

$useragentinfo=null;
if(stristr($_SERVER['HTTP_USER_AGENT'],'windows')!==false || stristr($_SERVER['HTTP_USER_AGENT'],'win32')!==false) $useragentinfo.='Windows';
elseif(stristr($_SERVER['HTTP_USER_AGENT'],'macintosh')!==false || stristr($_SERVER['HTTP_USER_AGENT'],'mac_powerpc')!==false) $useragentinfo.='Macintosh';
elseif(stristr($_SERVER['HTTP_USER_AGENT'],'linux')!==false) $useragentinfo.='Linux';
elseif(stristr($_SERVER['HTTP_USER_AGENT'],'bsd')!==false) $useragentinfo.='BSD';
else $useragentinfo.='Unknown';

$useragentinfo.=' / ';

if(stristr($_SERVER['HTTP_USER_AGENT'],'msie')!==false) $useragentinfo.='Internet Explorer';
elseif(stristr($_SERVER['HTTP_USER_AGENT'],'firefox')!==false) $useragentinfo.='Firefox';
elseif(stristr($_SERVER['HTTP_USER_AGENT'],'netscape')!==false) $useragentinfo.='Netscape';
elseif(stristr($_SERVER['HTTP_USER_AGENT'],'opera')!==false) $useragentinfo.='Opera';
elseif(stristr($_SERVER['HTTP_USER_AGENT'],'konqueror')!==false) $useragentinfo.='Konqueror';
elseif(stristr($_SERVER['HTTP_USER_AGENT'],'seamonkey')!==false) $useragentinfo.='SeaMonkey';
else $useragentinfo.='Unknown';

$useragent_array=array(
   array(null,"Actual ({$useragentinfo})"),
   array('-1',' [ Don\'t Send ] '),
   array('Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061024 Firefox/2.0','Windows XP / Firefox 2.0'),
   array('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1)','Windows XP / Internet Explorer 7'),
   array('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)','Windows XP / Internet Explorer 6'),
   array('Opera/9.02 (Windows NT 5.1; U; en)','Windows XP / Opera 9.02'),
   array('Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US; rv:1.8.1) Gecko/20061024 Firefox/2.0','Mac OS X / Firefox 2.0'),
   array('Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/521.25 (KHTML, like Gecko) Safari/521.24','Mac OS X / Safari 3.0'),
   array('Opera/9.02 (Macintosh; PPC Mac OS X; U; en)','Mac OS X / Opera 9.02'),
   array('Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1) Gecko/20061024 Firefox/2.0','Linux / Firefox 2.0'),
   array('Opera/9.02 (X11; Linux i686; U; en)','Linux / Opera 9.02'),
   array('Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko)','Linux / Konqueror 3.5.5'),
   array('Links (2.1pre19; Linux 2.6 i686; x)','Linux / Links (2.1pre19)'),
   array('Lynx/2.8.5rel.1','Any / Lynx 2.8.5rel.1'),
   array('Dillo/0.8.6','Any / Dillo 0.8.6'),
   array('Wget/1.10.2','Any / Wget 1.10.2'),
   array('1',' [ Custom ] <noscript><b>**</b></noscript>')
);

define('IPREGEXP','/^((?:[0-2]{0,2}[0-9]{1,2}\.){3}[0-2]{0,2}[0-9]{1,2})\:([0-9]{1,5})$/');

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>
<head>
<title>Surrogafier</title>
<meta name="robots" content="index, nofollow" />
<style>
   body{font-family: bitstream vera sans, trebuchet ms}
   input{border: 1px solid #000000}
   select{border: 1px solid #000000}
   a{color: #000000}
   a:hover{text-decoration: none}
   .advanced_stuff{display: <?php echo(SIMPLE_MODE?'none':'table-row'); ?>}
   .simple_stuff{display: <?php echo(SIMPLE_MODE?'table-row':'none'); ?>}
   .url{width: <?php echo(SIMPLE_MODE?SIMPLE_MODE_URLWIDTH:'99%'); ?>}
   .signature{float: left}
<?php if(FORCE_SIMPLE){ ?>
   .noscript_stuff{display: none}
   .signature{text-align: center; float: none}
<?php } ?>
</style>
<?php if(!FORCE_SIMPLE){ ?><noscript><style>
   .advanced_stuff{display: table-row}
   .simple_stuff{display: none}
   .noscript_stuff{display: none}
   .noscripturl{width: 99%}
   .url{display: none}
   .signature{text-align: center; float: none}
</style></noscript><?php } ?>
<script language="javascript">
<!--

<?php js_proxenc(); ?>

function useragent_check(focus){
   if(document.getElementsByName('<?php echo(COOK_PREF); ?>_useragent')[0].value=='1'){
      document.getElementById('useragent_texttr').style.display="";
      if(focus) document.getElementById('<?php echo(COOK_PREF); ?>_useragenttext').focus();
   }
   else document.getElementById('useragent_texttr').style.display='none';
}

<?php if(!FORCE_SIMPLE){ ?>
advanced_mode=true;
function toggle_mode(){
   document.getElementById("mode_toggler").innerHTML=(advanced_mode?"Advanced Mode":"Simple Mode");
   var advanced_stuff=document.getElementsByTagName("tr");
   for(var i=1;i<=12;i++) advanced_stuff.style.display=(advanced_mode?"none":"");
   document.getElementById("simple_submit").style.display=(advanced_mode?"inline":"none");
   document.getElementById("url").style.width=(advanced_mode?"<?php echo(SIMPLE_MODE_URLWIDTH); ?>":"99%");
   advanced_mode=!advanced_mode;
   if(advanced_mode) useragent_check(false);
   setTimeout("document.getElementById('url').focus();",100);
}
<?php } ?>

function submit_code(){
   document.forms[0].<?php echo(COOK_PREF); ?>.disabled=false;
   if(document.forms[0].<?php echo(COOK_PREF); ?>_encrypt_urls.checked)
      document.forms[0].<?php echo(COOK_PREF); ?>.value=<?php echo(COOK_PREF); ?>_pe.proxenc(document.getElementById('url').value);
   else
      document.forms[0].<?php echo(COOK_PREF); ?>.value=document.getElementById('url').value;
   return true;
}

//-->
</script>
</head>
<body<?php echo(SIMPLE_MODE?' onload="toggle_mode();"':null); ?>>
<center>
<span style="font-size: 18pt; font-weight: bold; margin-bottom: 5px">Surrogafier</span>
<form method="post" onsubmit="return submit_code();" style="margin: 0px; padding: 0px">
<input type="hidden" name="<?php echo(COOK_PREF); ?>_set_values" value="1" />
<input type="hidden" name="<?php echo(COOK_PREF); ?>" disabled="disabled" />
<table>
<tr>
<td style="text-align: left">URL:&nbsp;&nbsp;</td>
<td>
   <input type="text" class="url" id="url" value="<?php echo(ORIG_URL); ?>" />
   <noscript><input type="text" class="noscripturl" name="<?php echo(COOK_PREF); ?>" id="url" value="<?php echo(ORIG_URL); ?>" /></noscript>
   <input type="submit" class="simple_stuff" id="simple_submit" value="Surrogafy" style="background-color: #F0F0F0" />
</td>
</tr>
<tr class="advanced_stuff"<?php if(FORCE_DEFAULT_TUNNEL){ ?> style="display: none"><?php } ?>
<td style="text-align: left">Tunnel Proxy:</td>
<td><table cellspacing="0" cellpadding="0">
<tr>
   <td style="width: 100%"><input type="text" name="<?php echo(COOK_PREF); ?>_pip" onkeyup="if(this.value.match(<?php echo(IPREGEXP); ?>)){ document.forms[0].<?php echo(COOK_PREF); ?>_pport.value=this.value.replace(<?php echo(IPREGEXP); ?>,'\$2'); this.value=this.value.replace(<?php echo(IPREGEXP); ?>,'\$1'); document.forms[0].<?php echo(COOK_PREF); ?>_pport.focus(); };" style="width: 100%; text-align: left" value="<?php echo(empty($_COOKIE[COOK_PREF.'_pip'])?DEFAULT_TUNNEL_PIP:$_COOKIE[COOK_PREF.'_pip']); ?>" /></td>
   <td style="width: 5px">&nbsp;&nbsp;</td>
   <td style="width: 50px"><input type="text" name="<?php echo(COOK_PREF); ?>_pport" maxlength="5" size="5" style="width: 50px" value="<?php echo(empty($_COOKIE[COOK_PREF.'_pport'])?DEFAULT_TUNNEL_PPORT:$_COOKIE[COOK_PREF.'_pport']); ?>" /></td>
</tr>
</table></td>
</tr>
<tr class="advanced_stuff">
<td style="text-align: left">User-Agent:</td>
<td><select name="<?php echo(COOK_PREF); ?>_useragent" style="width: 100%" onchange="useragent_check(true);">
<?php foreach($useragent_array as $useragent){ ?>
   <option value="<?php echo($useragent[0]); ?>"<?php if($_COOKIE[COOK_PREF.'_useragent']==$useragent[0]) echo ' selected="selected"'; ?>><?php echo($useragent[1]); ?></option>
<?php } ?>
</select></td>
</tr>
<tr class="advanced_stuff" id="useragent_texttr"<?php echo($_COOKIE[COOK_PREF.'_useragent']=='1'?null:' style="display: none"'); ?>>
   <td>&nbsp;</td>
   <td><input type="text" id="<?php echo(COOK_PREF); ?>_useragenttext" name="<?php echo(COOK_PREF); ?>_useragenttext" value="<?php echo($_COOKIE[COOK_PREF.'_useragenttext']); ?>" style="width: 99%" /></td>
</tr>
<tr class="advanced_stuff"><td>&nbsp;</td><td style="text-align: left"><input type="checkbox" name="<?php echo(COOK_PREF); ?>_url_form" style="border: 0px" <?php if(!empty($_COOKIE[COOK_PREF.'_url_form'])) echo 'checked="checked" '; ?>/>&nbsp;Persistent URL Form</td></tr>
<tr class="advanced_stuff"><td>&nbsp;</td><td style="text-align: left"><input type="checkbox" name="<?php echo(COOK_PREF); ?>_remove_cookies" style="border: 0px" <?php if(!empty($_COOKIE[COOK_PREF.'_remove_cookies'])) echo 'checked="checked" '; ?>/>&nbsp;Remove Cookies</td></tr>
<tr class="advanced_stuff"><td>&nbsp;</td><td style="text-align: left"><input type="checkbox" name="<?php echo(COOK_PREF); ?>_remove_referer" style="border: 0px" <?php if(!empty($_COOKIE[COOK_PREF.'_remove_referer'])) echo 'checked="checked" '; ?>/>&nbsp;Remove Referer Field</td></tr>
<tr class="advanced_stuff"><td>&nbsp;</td><td style="text-align: left"><input type="checkbox" name="<?php echo(COOK_PREF); ?>_remove_scripts" style="border: 0px" <?php if(!empty($_COOKIE[COOK_PREF.'_remove_scripts'])) echo 'checked="checked" '; ?>/>&nbsp;Remove Scripts (JS, VBS, etc)</td></tr>
<tr class="advanced_stuff"><td>&nbsp;</td><td style="text-align: left"><input type="checkbox" name="<?php echo(COOK_PREF); ?>_remove_objects" style="border: 0px" <?php if(!empty($_COOKIE[COOK_PREF.'_remove_objects'])) echo 'checked="checked" '; ?>/>&nbsp;Remove Objects (Flash, Java, etc)</td></tr>
<tr class="advanced_stuff"><td>&nbsp;</td><td style="text-align: left"><input type="checkbox" name="<?php echo(COOK_PREF); ?>_encrypt_urls" style="border: 0px" <?php if(!empty($_COOKIE[COOK_PREF.'_encrypt_urls'])) echo 'checked="checked" '; ?>/>&nbsp;Encrypt URLs<noscript><b>**</b></noscript></td></tr>
<tr class="advanced_stuff"><td>&nbsp;</td><td style="text-align: left"><input type="checkbox" name="<?php echo(COOK_PREF); ?>_encrypt_cooks" style="border: 0px" <?php if(!empty($_COOKIE[COOK_PREF.'_encrypt_cooks'])) echo 'checked="checked" '; ?>/>&nbsp;Encrypt Cookies<noscript><b>**</b></noscript></td></tr>
<tr class="advanced_stuff"><td colspan="2"><input type="submit" value="Surrogafy" style="width: 100%; background-color: #F0F0F0" /></td></tr>
<tr><td style="font-size: 8pt" colspan="2">
<div class="signature"><a href="http://bcable.net/">Surrogafier v<?php echo(VERSION); ?> <b>&middot;</b> Brad Cable</a></div>
<div class="noscript_stuff" style="float: right"><a href="#" onclick="toggle_mode();" id="mode_toggler"><?php echo(SIMPLE_MODE?'Advanced':'Simple'); ?> Mode</a></div>
</td></tr>
</table>
<noscript>
<br />
<b>**</b> Surrogafier has detected that your browser does not have javascript enabled. <b>**</b>
<br />
<b>**</b> Surrogafier requires javascript in order to function to its full potential. <b>**</b>
</noscript>
</form>
</center>
</body>
</html>

<?php exit(); }

# }}}

# FRAMED PAGE WITH URL FORM {{{
if(PAGETYPE_ID===PAGETYPE_FRAME_TOP && ORIG_URL!=null){ ?>
<html>
<head>
<title><?php echo(ORIG_URL); ?></title>
<style>
   body{font-family: bitstream vera sans, trebuchet ms; margin: 0px; padding: 0px; font-size: 12px; overflow: hidden}
   input{border: 1px solid #000000}
   td{font-size: 12px}
   a{text-decoration: none; color: #000000}
   a:hover{text-decoration: underline}
</style>
<script>
<!--

<?php echo(COOK_PREF); ?>=true;

<?php if(ENCRYPT_URLS) js_proxenc(); ?>

function submit_code(){
<?php if(ENCRYPT_URLS){ ?>
   document.forms[0].<?php echo(COOK_PREF); ?>.value=<?php echo(COOK_PREF); ?>_pe.proxenc(document.forms[0].<?php echo(COOK_PREF); ?>.value);
<?php } ?>
   return true;
}

//-->
</script>
</head>
<body>
<form method="get" onsubmit="return submit_code();">
<input type="hidden" name="" value="" />
<table cellpadding="0" cellspacing="0" style="width: 100%; height: 100%; padding: 0px; margin: 0px">
<tr><td><table cellpadding="0" cellspacing="0" style="width: 100%; padding: 3px">
<tr>
   <td>&nbsp;<b><a id="proxy_link" href="<?php echo(THIS_SCRIPT.'?=-&='.OENC_URL); ?>">Surrogafier</a></b>&nbsp;&nbsp;</td>
   <td style="width: 100%"><input type="text" class="url" name="" style="width: 100%; padding-left: 4px" id="url" value="<?php echo(ORIG_URL); ?>" /></td>
   <td>&nbsp;</td>
   <td><input type="submit" class="simple_stuff" id="simple_submit" value="Surrogafy" style="background-color: #F0F0F0" /></td>
</tr>
</table></td></tr>
<tr><td style="height: 100%; border-top: 1px solid #000000">
<iframe name="<?php echo(COOK_PREF); ?>_top" src="<?php echo(THIS_SCRIPT.'?=_&='.OENC_URL); ?>" frameborder="0" style="border: 0px; width: 100%; height: 100%"></iframe>
</td></tr>
</table>
</form>
</body>
</html>
<?php exit(); }

# }}}

# PRE-javascript CONSTANTS & FUNCTIONS {{{
# these constants and functions must be defined before JS is output, but would be more readably located later

#define('AURL_LOCK_REGEXP','(?:(?:javascript|mailto|about):|~|%7e)');
define('FRAME_LOCK_REGEXP','/^(?:(?:javascript|mailto|about):|#)/i');
define('AURL_LOCK_REGEXP','/^(?:(?:javascript|mailto|about):|#|'.str_replace(array('/','.'),array('\/','\.'),addslashes(THIS_SCRIPT)).')/i');
define('URLREG','/^'.
   '(?:([a-z]*)?(?:\:?\/\/))'.      # proto
   '(?:([^\@\/]*)\@)?'.         # userpass
   '([^\/:\?\#\&]*)'.         # servername
   '(?:\:([0-9]+))?'.         # portval
   '(\/[^\&\?\#]*?)?'.         # path
   '([^\/\?\#\&]*(?:\&[^\?\#]*)?)'.   # file
   '(?:\?([\s\S]*?))?'.         # query
   '(?:\#([\s\S]*))?'.         # label
'$/ix');

function escape_regexp($regexp,$dollar=false){
   $regexp=str_replace('\\','\\\\',str_replace('\'','\\\'',str_replace('"','\\"',str_replace(chr(10),'\n',str_replace(chr(13),'\r',str_replace(chr(9),'\t',$regexp))))));
   return ($dollar?preg_replace('/[\\\\]+(?=[0-9])/','\\\\$',$regexp):preg_replace('/[\\\\]+(?=[0-9])/','\\\\\\\\',$regexp)); #*
}

# }}}

# javascript FUNCS {{{

if(QUERY_STRING=='js_funcs' || QUERY_STRING=='js_funcs_framed'){ ?>//<script>

// javascript FUNCS: DECODING {{{
<?php js_proxenc(); ?>

<?php echo(COOK_PREF); ?>_pe.b64d=function(string){
   var binrep="",decstr="";
   var charnum,charbin;
   string=string.replace(/[=]*$/,"");
   for(var i=0;i<string.length;i++){
      charnum=string.charCodeAt(i);
      if(charnum>=97) charnum-=71;
      else if(charnum>=65) charnum-=65;
      else if(charnum>=48) charnum+=4;
      else if(charnum==43) charnum=62;
      else if(charnum==47) charnum=63;
      binrep+=this.dectobin(charnum,6);
   }
   for(var i=0;i+8<binrep.length;i+=8){
      charbin=binrep.substr(i,8);
      decstr+=String.fromCharCode(this.bintodec(charbin));
   }
   return decstr;
}

<?php echo(COOK_PREF); ?>_pe.proxdec=function(url){
   var new_url,charnum;
   if(url.substr(0,1)!='~' && url.substr(0,3).toLowerCase()!='%7e') return url;
   while(url.substr(0,1)=='~' || url.substr(0,3).toLowerCase()=='%7e'){
      url=url.substr(1,url.length-1);
      url=this.b64d(url);
      new_url="";
      for(i=0;i<url.length;i++){
         charnum=url.charCodeAt(i);
         charnum-="<?php echo(SESS_PREF); ?>".charCodeAt(i%"<?php echo(SESS_PREF); ?>".length);
         while(charnum<32) charnum+=94;
         new_url+=String.fromCharCode(charnum);
      }
      url=new_url;
   }
   return decodeURIComponent(url); // urldecode()
}

// }}}

// javascript FUNCS: COOK_PREF OBJECT {{{

<?php echo(COOK_PREF); ?>={

URLREG:<?php echo(substr(URLREG,0,strlen(URLREG)-1)); ?>,
THIS_SCRIPT:"<?php echo(THIS_SCRIPT); ?>",
COOK_PREF:"<?php echo(COOK_PREF); ?>",
pe:<?php echo(COOK_PREF); ?>_pe,
gen_curr_urlobj:function(){ this.curr_urlobj=new this.aurl(this.CURR_URL); },

getCookieArr:function(){ return document.cookie.split("; "); },

aurl:function(url,topurl){
   this.URLREG=<?php echo(COOK_PREF); ?>.URLREG;
   this.THIS_SCRIPT=<?php echo(COOK_PREF); ?>.THIS_SCRIPT;
   this.ENCRYPT_URLS=<?php echo(COOK_PREF); ?>.ENCRYPT_URLS;

   this.trim=function(str){ return str.replace(/^\s*([\s\S]*?)\s*$/,"$1"); }

   this.get_fieldreq=function(fieldno,value){
      var fieldreqs=new Array();
      fieldreqs[2]="://"+(value!=""?value+"@":"");
      fieldreqs[4]=(value!="" && parseInt(value)!=80?":"+parseInt(value):"");
      fieldreqs[7]=(value!=""?"?"+value:"");
      fieldreqs[8]=(value!=""?"#"+value:"");
      if(fieldreqs[fieldno]!=undefined) return value;
      // return (value!=""?null:value);
      else return fieldreqs[fieldno];
   }

   this.set_proto=function(proto){
      if(proto==undefined) proto="http";
      if(this.locked) return;
      this.proto=proto;
   }
   this.get_proto=function(){ return this.proto; }

   this.get_userpass=function(){ return this.userpass; }
   this.set_userpass=function(userpass){ if(userpass==undefined) userpass=""; this.userpass=userpass; }
   this.get_servername=function(){ return this.servername; }
   this.set_servername=function(servername){ if(servername==undefined) servername=""; this.servername=servername; }
   this.get_portval=function(){ return ((this.portval=="")?(this.get_proto()=="https"?"443":"80"):this.portval); }
   this.set_portval=function(port){ if(port==undefined) port=""; this.portval=((parseInt(port)!=80)?port:"").toString(); }
   this.get_path=function(){ // ***
      if(this.path.indexOf("/../")!=-1) this.path=this.path.replace(/(?:\/[^\/]+){0,1}\/\.\.\//g,"/");
      if(this.path.indexOf("/./")!=-1) while((path=this.path.replace("/./","/")) && path!=this.path) this.path=path;
      return this.path;
   }
   this.set_path=function(path){ if(path==undefined) path="/"; this.path=path; }
   this.get_file=function(){ return this.file; }
   this.set_file=function(file){ if(file==undefined) file=""; this.file=file; }
   this.get_query=function(){ return this.query; }
   this.set_query=function(query){ if(query==undefined) query=""; this.query=query; }
   this.get_label=function(){ return this.label; }
   this.set_label=function(label){ if(label==undefined) label=""; this.label=label; }

   this.get_url=function(){
      if(this.locked) return this.url;
      return this.get_proto()+"://"+
             (this.get_userpass()==""?"":this.get_userpass()+"@")+
             this.get_servername()+
             (parseInt(this.get_portval())==80?"":":"+parseInt(this.get_portval()))+
             this.get_path()+this.get_file()+
             (this.get_query()==""?"":"?"+this.get_query())+
             (this.get_label()==""?"":"#"+this.get_label())
      ;
   }

   this.surrogafy=function(){
      var url=this.get_url();
      if(this.locked || this.get_proto()+this.get_fieldreq(2,this.get_userpass())+this.get_servername()+this.get_path()+this.get_file()==this.THIS_SCRIPT) return url;
      var label=this.get_label();
      this.set_label();
      if(this.ENCRYPT_URLS && !this.locked) url=<?php echo(COOK_PREF); ?>.pe.proxenc(url);
      //url=this.THIS_SCRIPT+"?="+(!this.ENCRYPT_URLS?escape(url):url); // urlencode()d
      url=this.THIS_SCRIPT+"?="+url; // urlencode()d
      this.set_label(label);
      return url;
   }

   if(url.length><?php echo(MAXIMUM_URL_LENGTH)?>){
      //alert(this.url); // DEBUG
      //alert(this.url.length); // DEBUG
      this.url="";
   }
   else{
      //this.url=preg_replace("/&#([0-9]+);/e","chr(\\1)" // parse like PHP does for &#num; HTML entities? // TODO?
      this.url=this.trim(url.replace("&amp;","&").replace("\r","").replace("\n",""));
   }

   this.topurl=topurl;
   this.locked=url.match(<?php echo(AURL_LOCK_REGEXP); ?>); //*

   if(!this.locked){
      var urlwasvalid=true;
      if(!this.url.match(this.URLREG)){
         urlwasvalid=false;
         if(this.topurl==undefined) this.url="http://"+((this.url.charAt(0)==":" || this.url.charAt(0)=="/")?this.url.substring(1):this.url)+(this.url.indexOf("/")!=-1?"":"/");
         else{
            var newurl=this.topurl.get_proto()+"://"+this.get_fieldreq(2,this.topurl.get_userpass())+this.topurl.get_servername()+((this.topurl.get_portval()!=80 && (this.topurl.get_proto()=="https"?this.topurl.get_portval()!=443:true))?":"+this.topurl.get_portval():"");
            if(this.url.substring(0,1)!="/") newurl+=this.topurl.get_path();
            this.url=newurl+this.url;
         }
      }

      this.set_proto((urlwasvalid || this.topurl==undefined?this.url.replace(/^([^:]+).*$/,"\$1"):this.topurl.get_proto()));
      this.set_userpass(this.url.replace(this.URLREG,"\$2"));
      this.set_servername(this.url.replace(this.URLREG,"\$3"));
      this.set_portval(this.url.replace(this.URLREG,"\$4"));
      this.set_path(this.url.replace(this.URLREG,"\$5"));
      this.set_file(this.url.replace(this.URLREG,"\$6"));
      this.set_query(this.url.replace(this.URLREG,"\$7"));
      this.set_label(this.url.replace(this.URLREG,"\$8"));
   }

   //if(!this.locked && !this.url.match(this.URLREG)) havok(7,this.url); //*
},

surrogafy_url:function(url,topurl,addproxy){
   url=url.toString();
   if(!url.substring) return;
   if(addproxy==undefined) addproxy=true;
   var urlquote="";
   if((url.substring(0,1)=="\"" || url.substring(0,1)=="'") && url.substring(0,1)==url.substring(url.length-1,url.length)){
      urlquote=url.substring(0,1);
      url=url.substring(1,url.length-1);
   }
   if(topurl==undefined) topurl=this.curr_urlobj;
   var urlobj=new this.aurl(url,topurl);
   var new_url=(addproxy?urlobj.surrogafy():urlobj.get_url());
   if(urlquote!="") new_url=urlquote+new_url+urlquote;
   return new_url;
},

surrogafy_url_toobj:function(url,topurl,addproxy){
   url=url.toString();
   if(!url.substring) return;
   if(addproxy==undefined) addproxy=true;
   if((url.substring(0,1)=="\"" || url.substring(0,1)=="'") && url.substring(0,1)==url.substring(url.length-1,url.length)) url=url.substring(1,url.length-1);
   if(topurl==undefined) topurl=this.curr_urlobj;
   return new this.aurl(url,topurl);
},

de_surrogafy_url:function(url){
   if(url==undefined) return "";
   url=url.toString();
   if(url.match(<?php echo(FRAME_LOCK_REGEXP); ?>) || !url.match(<?php echo(AURL_LOCK_REGEXP); ?>)) return url;
   return this.pe.proxdec(decodeURIComponent(url.substring(url.indexOf('?')+1).replace(<?php echo(PAGETYPE_REGEXP); ?>,"\$2"))); // urldecode()
},

add_querystuff:function(url,querystuff){
   var pos=url.indexOf('?');
   return url.substr(0,pos+1)+querystuff+url.substr(pos+1,url.length-pos);
},

preg_match_all:function(regexpstr,string){
   var matcharr=new Array();
   var regexp=new RegExp(regexpstr);
   var result;
   while(true){
      result=regexp.exec(string);
      if(result!=null) matcharr.push(result);
      else break;
   }
   return matcharr;
},

framify_url:function(url,frame_type){
   if((frame_type!==<?php echo(PAGETYPE_FRAME_TOP); ?> || !this.URL_FORM) && (frame_type!==<?php echo(PAGETYPE_FRAMED_PAGE); ?> && !this.PAGE_FRAMED)) return url;
   var urlquote="";
   if((url.substring(0,1)=="\"" || url.substring(0,1)=="'") && url.substring(0,1)==url.substring(url.length-1,url.length)){
      urlquote=url.substring(0,1);
      url=url.substring(1,url.length-1);
   }
   if(!url.match(<?php echo(FRAME_LOCK_REGEXP); ?>)){
      var query;
      if(frame_type===<?php echo(PAGETYPE_FRAME_TOP); ?> && this.URL_FORM) query='&=';
      else if(frame_type===<?php echo(PAGETYPE_FRAMED_CHILD); ?>) query='.&=';
      else if(frame_type===<?php echo(PAGETYPE_FRAMED_PAGE); ?> || this.PAGE_FRAMED) query='_&=';
      else query='';
      url=url.replace(/^([^\?]*)[\?]?<?php echo(PAGETYPE_MINIREGEXP); ?>([^#]*?
  • ?.*?)$/,'\$1?='+query+'\$3');
       }
       if(urlquote!="") url=urlquote+url+urlquote;
       return url;
    },

    parse_html:function(regexp,partoparse,html,addproxy,framify){
       var match,begin,end,nurl;
       if(html.match(regexp)){
          var matcharr=this.preg_match_all(regexp,html);
          var newhtml="";
          for(var key in matcharr){
             /*match=matcharr;
             nurl=this.surrogafy_url(match[partoparse],undefined,addproxy);
             nhtml=match[0].replace(match[partoparse],nurl);
             html=html.replace(match[0],nhtml);*/
             match=matcharr[key];
             if(match[partoparse]!=undefined){
                begin=html.indexOf(match[partoparse]);
                end=begin+match[partoparse].length;
                nurl=this.surrogafy_url(match[partoparse],undefined,addproxy);
                if(framify) nurl=this.framify_url(nurl,framify);
                newhtml+=html.substring(0,begin)+nurl;
                html=html.substring(end);
             }
          }
          html=newhtml+html;
       }
       return html;
    },

    parse_all_html:function(){
       if(arguments[0]==null) return;
       var html=arguments[0].toString();
       var key;
       for(var key in regexp_arrays){
          if((arguments.length>1 && key!=arguments[1]) || key=='text/javascript') continue;
          arr=regexp_arrays[key];
          for(var regexp_arraykey in arr){
             regexp_array=arr[regexp_arraykey];
             if(regexp_array[0]==undefined) continue;
             if(regexp_array[0]==1) html=html.replace(regexp_array[1],regexp_array[2]);
             else if(regexp_array[0]==2){
                addproxy=(regexp_array.length>3?regexp_array[3]:true);
                framify=(regexp_array.length>4?regexp_array[4]:false);
                html=this.parse_html(regexp_array[1],regexp_array[2],html,addproxy,framify);
             }
          }
       }
       return html;
    },

    form_button:null,
    form_encrypt:function(form){
       if(form.method=='post') return true;
       //action=form.<php echo(COOK_PREF); ?>.value;
       var action=form.getElementsByName(this.COOK_PREF)[0].value;
       for(var i=1;i<form.elements.length;i++){
          if(form.elements.disabled || form.elements.name=='' || form.elements.value=='' || form.elements.type=='reset') continue;
          if(form.elements.type=='submit'){
             if(form.elements.name!=this.form_button) continue;
             this.form_button=null;
          }
          var pref;
          if(!action.match(/\?/)) pref="?";
          else pref="&";
          action+=pref+form.elements.name+"="+form.elements.value;
       }
       location.href=this.surrogafy_url(action);
       return false;
    },

    setAttr:function(obj,attr,val){
       if(typeof(attr)!=typeof("")){
          attr=attr.toString();
          attr=attr.substr(1,attr.length-2);
       }

       if(attr=="innerHTML"){
          obj[attr]=this.parse_all_html(val);
          return obj[attr];
       }

       if(obj==location && attr=="hostname") return this.LOCATION_HOSTNAME;

       if(obj==document && attr=="cookie"){
          const COOK_REG=/^([^=]*)=([^;]*)(?:;[\s\S]*?)?$/i;
          var realhost=this.LOCATION_HOSTNAME.replace("/^www/i","").replace(".","_");
          var cookkey=val.replace(COOK_REG,"\$1");
          var cookval=val.replace(COOK_REG,"\$2");
          if(this.ENCRYPT_COOKS){
             cookkey=proxenc(cookkey);
             cookval=proxenc(cookval);
          }
          var newcookie=realhost+"<?php echo(COOKIE_SEPARATOR); ?>"+cookkey+"="+cookval+"; ";
          document.cookie=newcookie;
          return newcookie;
       }

       if(obj==location && attr=="search"){
          if(val.substr(0,1)=="?") val=val.substr(1);
          this.curr_urlobj.set_query(val);
          val=this.curr_urlobj.get_url();
          attr="href";
       }

       var proxurl=val;
       if(attr!="cookie" && attr!="search" && attr!="hostname"){
          proxurl=this.surrogafy_url(val);

          // tags framified  must match REGEXPS with regexp_array[5]
          if(obj.tagName=="A" || obj.tagName=="AREA")
             proxurl=this.framify_url(proxurl,<?php echo(NEW_PAGETYPE_FRAME_TOP); ?>);
          else if(obj.tagName=="FRAME" || obj.tagName=="IFRAME")
             proxurl=this.framify_url(proxurl,<?php echo(PAGETYPE_FRAMED_CHILD); ?>);
       }

       if(this.URL_FORM){
          if((obj==location && attr=="href") || attr=="location"){
             urlobj=this.surrogafy_url_toobj(val);
             if(!urlobj.locked) proxurl=this.add_querystuff(proxurl,"=&");
             this.thetop.location.href=proxurl;
          }
          else obj[attr]=proxurl;
       }
       else obj[attr]=proxurl;
    },

    getAttr:function(obj,attr){
       if(typeof(attr)!=typeof("")){
          attr=attr.toString();
          attr=attr.substr(1,attr.length-2);
       }

       if(obj==document && attr=="cookie"){
          var ocookies=this.getCookieArr();
          var cookies="",ocook;
          const COOK_REG=/^([\s\S]*)<?php echo(COOKIE_SEPARATOR); ?>([^=]*)=([\s\S]*)(?:; )?$/i;
          for(var key in ocookies){
             ocook=ocookies[key];
             if(typeof(ocook)!=typeof("")) continue;
             if(ocook.match(COOK_REG)==null) continue;
             var realhost=this.LOCATION_HOSTNAME.replace("/^www/i","").replace(".","_");
             var cookhost=ocook.replace(COOK_REG,"\$1");
             if(cookhost==realhost){
                if(this.ENCRYPT_COOKS){
                   var cookkey=this.pe.proxdec(ocook.replace(COOK_REG,"\$2"));
                   var cookval=this.pe.proxdec(ocook.replace(COOK_REG,"\$3"));
                   cookies+=cookkey+"="+cookval+"; ";
                }
                else cookies+=ocook.replace(COOK_REG,"\$2=\$3; ");
             }
          }
          return cookies;
       }

       if(obj==navigator){
          if(this.USERAGENT=="-1" && (attr!="plugins" && attr!="mimeType")) return undefined;
          if(this.USERAGENT=="") return obj[attr];
          var msie=this.USERAGENT.match(/msie/i);
          const UA_REG=/^([^\/\(]*)\/?([^ \(]*)[ ]*(\(?([^;\)]*);?([^;\)]*);?([^;\)]*);?([^;\)]*);?([^;\)]*);?[^\)]*\)?)[ ]*([^ \/]*)\/?([^ \/]*).*$/i;
          switch(attr){
             case "userAgent": return this.USERAGENT;
             case "appCodeName": return this.USERAGENT.replace(UA_REG,"\$1");
             case "appVersion": return (msie?this.USERAGENT.replace(UA_REG,"\$2 \$3"):this.USERAGENT.replace(UA_REG,"\$2 (\$4; \$7)"));
             case "platform":
                var tempplatform=this.USERAGENT.replace(UA_REG,"\$4");
                return (tempplatform=="compatible" || tempplatform=="Windows"?"Win32":this.USERAGENT.replace(UA_REG,"\$6"));
             case "oscpu": return (msie?undefined:this.USERAGENT.replace(UA_REG,"\$6"));
             case "language": return (msie?undefined:this.USERAGENT.replace(UA_REG,"\$7"));
             case "appName":
                var tempappname=(msie?"Microsoft Internet Explorer":this.USERAGENT.replace(UA_REG,"\$1"));
                if(tempappname=="Opera" || tempappname=="Mozilla") tempappname="Netscape";
                return tempappname;
             case "product": return (msie?undefined:this.USERAGENT.replace(UA_REG,"\$9"));
             case "productSub": return (msie?undefined:this.USERAGENT.replace(UA_REG,"\$10"));
             case "plugins": return (<?php echo((empty($_COOKIE[COOK_PREF.'_remove_objects'])?'1':'0')); ?>==1?navigator.plugins:undefined);
             case "mimeType": return navigator.mimeType;
             default: return undefined;
          }
       }

       if(obj==location && attr=="search") url=location.href;
       else url=obj[attr];
       url=this.de_surrogafy_url(url);
       if(obj==location && attr=="search") url=url.replace(/^[^?]*/,"");
       return url;
    },

    eventify:function(a1,a2){
       document.getElementsByTagName("head")[0].addEventListener("load",function(){<?php echo(COOK_PREF); ?>.setParentStuff(a1,a2);},false);
       window.addEventListener("load",function(){<?php echo(COOK_PREF); ?>.setParentStuff(a1,a2);},false);
       this.setParentURL(this.CURR_URL);
    },

    setParentURL:function(url){
       if(this.thetop!=null && this.thetop!=window){
          this.thetop.document.getElementById('url').value=url;
          this.thetop.document.getElementById('proxy_link').href=this.add_querystuff(this.surrogafy_url(url),"=-&");
       }
    },

    setParentStuff:function(proto,server){ // amazing creativity with the name on my part
       var topdoc=this.thetop.document;
       topdoc.title=document.title;

       // find and set shortcut icon
       var tophead=topdoc.getElementsByTagName("head")[0];
       var links=tophead.getElementsByTagName("link");
       var link=null;
       for(var i=0; i<links.length; i++){ if(links.type=="image/x-icon" && links.rel=="shortcut icon") link=links; }

       if(tophead.getElementsByTagName("link").length>0) tophead.removeChild(topdoc.getElementsByTagName("link")[0]);

       var favicon=topdoc.createElement("link");
       favicon.type="image/x-icon";
       favicon.rel="shortcut icon";
       favicon.href=(link==null?this.surrogafy_url(proto+"://"+server+"/favicon.ico"):link.href);
       tophead.appendChild(favicon);
    },

    XMLHttpRequest_wrap:function(xmlhttpobj){
       xmlhttpobj.<?php echo(COOK_PREF); ?>_open=xmlhttpobj.open;
       xmlhttpobj.open=<?php echo(COOK_PREF); ?>.XMLHttpRequest_open;
       return xmlhttpobj;
    },

    XMLHttpRequest_open:function(){
       if(arguments.length<2) return;
       arguments[1]=<?php echo(COOK_PREF); ?>.surrogafy_url(arguments[1]);
       return this.<?php echo(COOK_PREF); ?>_open.apply(this,arguments);
    },

    // WRAPPED FUNCTIONS AND OBJECTS
    thetop:top,
    theparent:parent,
    setTimeout:window.setTimeout,
    setInterval:window.setInterval,
    document_write_queue:"",
    purge:function(){
       thehtml=this.document_write_queue;
       if(thehtml=="") return;
       thehtml=this.parse_all_html(thehtml);
       this.document_write_queue="";
       //alert(thehtml); // DEBUG
       document.write_<?php echo(COOK_PREF); ?>(thehtml);
    },

    purge_noparse:function(){
       thehtml=this.document_write_queue;
       if(thehtml=="") return;
       this.document_write_queue="";
       document.write_<?php echo(COOK_PREF); ?>(thehtml);
    }

    }

    // }}}

    // javascript FUNCS: WRAPPING {{{

    document.write_<?php echo(COOK_PREF); ?>=document.write;
    document.writeln_<?php echo(COOK_PREF); ?>=document.writeln;
    document.write=function(html){ <?php echo(COOK_PREF); ?>.document_write_queue+=html; }
    document.writeln=function(html){ <?php echo(COOK_PREF); ?>.document_write_queue+=html+"\n"; }

    window.open_<?php echo(COOK_PREF); ?>=window.open;
    window.open=document.open=function(){
       if(arguments.length<1) return;
       var url=<?php echo(COOK_PREF); ?>.surrogafy_url(arguments[0]);
       if((url.substring(0,1)=="\"" || url.substring(0,1)=="'") && url.substring(0,1)==url.substring(url.length-1,url.length)) url=url.substring(1,url.length-1);
       arguments[0]=url;
       return window.open_<?php echo(COOK_PREF); ?>.apply(this.caller,arguments);
    }

    setTimeout=function(){
       if(arguments.length<2) return;
       arguments[0]=<?php echo(COOK_PREF); ?>.parse_all_html(arguments[0],"application/x-javascript");
       return <?php echo(COOK_PREF); ?>.setTimeout.apply(this,arguments);
    }

    setInterval=function(){
       if(arguments.length<2) return;
       arguments[0]=<?php echo(COOK_PREF); ?>.parse_all_html(arguments[0],"application/x-javascript");
       return <?php echo(COOK_PREF); ?>.setInterval.apply(this,arguments);
    }

    /* hooking for eval(), not necessary anymore, but worked relatively well in the past
    /*eval_<?php echo(COOK_PREF); ?>=eval;
    eval=function(){
       if(arguments.length<1) return;
       arguments[0]=<?php echo(COOK_PREF); ?>.parse_all_html(arguments[0],"application/x-javascript");
       return eval_<?php echo(COOK_PREF); ?>.apply(this.caller,arguments);
    }*/

    // wrap top and parent objects for anti-frame breaking
    if(<?php echo(COOK_PREF); ?>.PAGE_FRAMED){
       if(parent==top) parent=self;
       if(top!=self) top=<?php echo(COOK_PREF); ?>.thetop.frames[0];
    }

    // }}}

    //</script><?php exit(); }

    # }}}

    # REGEXPS {{{

    # This is where all the parsing is defined.  If a site isn't being
    # parsed properly, the problem is more than likely in this section.
    # The rest of the code is just there to set up this wonderful bunch
    # of incomprehensible regular expressions.


    # REGEXPS: CONVERSION TO javascript {{{

    function bool_to_js($bool){ return ($bool?'true':'false'); }
    function convertarray_to_javascript(){
       global $regexp_arrays;
       $js='regexp_arrays=new Array('.count($regexp_arrays).");\n";
       reset($regexp_arrays);
       while(list($key,$arr)=each($regexp_arrays)){
          $js.="regexp_arrays[\"$key\"]=new Array(".count($arr).");\n";
          for($i=0;$i<count($arr);$i++){
             $js.="regexp_arrays[\"$key\"][$i]=new Array(";
             if($arr[$i][0]==1) $js.='1,'.escape_regexp($arr[$i][2]).'g,"'.escape_regexp($arr[$i][3],true).'"';
             elseif($arr[$i][0]==2) $js.='2,'.escape_regexp($arr[$i][2])."g,{$arr[$i][3]}".(count($arr[$i])<5?null:','.bool_to_js($arr[$i][4])).(count($arr[$i])<6?null:",{$arr[$i][5]}");
             $js.=");\n";
          }
       }
       return stripslashes($js);
    }

    # }}}

    # REGEXPS: VARIABLES {{{

    global $regexp_arrays;

    # 'img' was in $jsattrs... what's that for?
    $jsattrs='(?:href|src|location|action|backgroundImage|pluginspage|codebase|location\.href|innerHTML)';
    $jshookattrs="(?:{$jsattrs}|cookie|search|hostname)";
    $jshookgetattrs="(?:{$jshookattrs}|userAgent|platform|appCodeName|appName|appVersion|language|oscpu|product|productSub|plugins)";
    //$jshtmlattrs='(innerHTML)';
    $jsmethods='(location\.(?:replace|assign))';
    $jslochost='(location\.host(?:name){0,1})';
    //$jslocsearch='(location\.search)';
    //$jsrealpage='((?:(?:document|window)\.){0,1}location(?:(?=[^\.])|\.href)|document\.documentURI|[a-z]+\.referrer)';
    $htmlattrs='(data|href|src|background|pluginspage|codebase|action)';

    $justspace="[\t ]*";
    $plusjustspace="[\t ]+";
    $anyspace="[\t\r\n ]*";
    $plusspace="[\t\r\n ]+";
    $operands='[\+\-\/\*]';
    $notoperands='[^\+\-\/\*]';

    $quoteseg='(?:"(?:[^"]|[\\\\]")*?"|\'(?:[^\']|[\\\\]\')*?\'';
    $regseg='\/(?:[^\/]|[\\\\]\/)*?\/';

    //$jsobjsect="{$jsvarsect}(?:\((?:{$quoteseg}|{$jsvarsect}|))\))?";
    //$jsobjsect="{$jsvarsect}(?:\({$anyspace}(?:{$quoteseg}|{$jsvarsect}|))(?:{$anyspace},{$anyspace}{$quoteseg}|{$jsvarsect}|))*{$anyspace}\))?(?:\[(?:{$quoteseg}|{$jsvarsect}|))\])?";
    //$jsobjsect="{$jsvarsect}(?:\((?:[^\(\)\"']*(?:{$quoteseg}|(?R))))\))?(?:\[(?:[^\[\]\"']*(?:{$quoteseg}|(?R))))\])?";
    //$jsvarobj='(?:[a-zA-Z0-9\._\(\)\[\]\+\-]+)';
    $jsvarsect='[a-zA-Z0-9_\$](?:[a-zA-Z0-9\$\._\/\[\]\+-]*[a-zA-Z0-9_\/\]])?';
    $jsobjsect="{$jsvarsect}(?:\((?:{$quoteseg}|{$jsvarsect}|))\))?(?:\[(?:{$quoteseg}|{$jsvarsect}|))\])?";
    $jsvarobj="{$jsobjsect}(?:\.{$jsobjsect})*";
    //$jsquotereg="((?:(?:{$anyspace}{$quoteseg}|{$jsvarobj}){$anyspace}\+)*){$anyspace}{$quoteseg}|{$jsvarobj}){$justspace}(?=[;\}\n\r]))"; # HUH?
    $jsquotesect="(?:{$anyspace}{$quoteseg}|{$jsvarobj}))";
    $jsquotereg="{$jsquotesect}(?:\+{$jsquotesect})*";

    //$notjsvarsect='[^a-zA-Z0-9\._\[\]\+-]';
    //$notjsvarsect='[^a-zA-Z0-9\._\[\]\/]';
    $notjsvarsect='[^a-zA-Z0-9\._\[\]]';

    //$jsend="(?={$anyspace}[;\}\n\r\'\"])";
    //$jsend="(?={$anyspace}(?:[;\}]|{$notoperands}[\n\r]))";
    $jsend="(?={$justspace}(?:[;\}\n\r]|{$notoperands}[\n\r]))";
    $notjsend="(?!{$justspace}(?:[;\}\n\r]|{$notoperands}[\n\r]))";
    $jsbegin="((?:[;\{\}\n\r\(\)]|[\!=]=){$anyspace})";
    //$jsbeginright="((?:[;\{\}\n\r\(\)=\+\-\/\*]){$anyspace})";
    $jsbeginright="((?:[;\{\}\(\)=\+\-\/\*]){$justspace})";

    $htmlnoquot='(?:[^"\'\\\\][^> ]*)';
    $htmlnoquotnoqm='(?:[^\?"\'\\\\][^\?> ]*)';
    $htmlreg="({$quoteseg}|{$htmlnoquot}))";
    $xmlhttpreq="(?:XMLHttpRequest{$anyspace}(?:\({$anyspace}\)|)|ActiveXObject{$anyspace}\({$anyspace}[^\)]+\.XMLHTTP['\"]{$anyspace}\))(?=;)";
    $jsnewobj="(?:{$anyspace}new{$plusspace}|{$anyspace})";
    $formnotpost="(?:(?!method{$anyspace}={$anyspace}(?:'|\")?post)[^>])";
    $frametargets='_(?:top|parent|self)';

    $js_string_methods='(?:anchor|big|blink|bold|charAt|charCodeAt|concat|fixed|fontcolor|fontsize|fromCharCode|indexOf|italics|lastIndexOf|link|match|replace|search|slice|small|split|strike|sub|substr|substring|sup|toLowerCase|toUpperCase|toSource|valueOf)';
    $js_string_attrs='(?:constructor|length|prototype)';

    # }}}

    # REGEXPS: javascript PARSING {{{

    $js_regexp_arrays=array(
       array(1,2,"/{$jsbegin}({$jsvarobj})\.({$jshookgetattrs}){$anyspace}\+=/i",'\1\2.\3='.COOK_PREF.'.getAttr(\2,/\3/)+'),
       array(1,2,"/{$jsbegin}({$jsvarobj})\.(({$jshookattrs}){$anyspace}=(?:{$anyspace}{$jsvarobj}{$anyspace}=)*{$anyspace})((?!\=)({$notjsend}.)*){$jsend}/i",'\1'.COOK_PREF.'.setAttr(\2,/\4/,\5)'),
       array(1,2,"/{$jsbeginright}({$jsvarobj})\.({$jshookgetattrs})([^\.=a-z0-9_\[\]\t\r\n]|\.{$js_string_methods}\(|\.{$js_string_attrs}{$notjsvarsect})/i",'\1'.COOK_PREF.'.getAttr(\2,/\3/)\4'),
#7
PHP / Agregar una DLL al php.ini!!!
12 Junio 2007, 21:39 PM
Señores en esta web que les pongo a continuacion http://www.php.net/manual/es/ref.ssh2.php es para poder hacr conexiones SSH desde PHP, el problema es que la DLL q ellos me dicen que descargue y configure el PHP no me esta funcionando con los pasos que ellos me dan que puede ser...

GRacias...

Cuando echo andar el Script que hace una conexion SSH me dice que no reconoce la funcion SSH....

Pq

Me dice:

No se puede encontrar el m\xf3dulo especificado.\r\n in Unknown on line 0


Baje el paquete de 4 MB...

Espero...
#8
Ok gente sobre este tema no se ni pitoche, por lo tanto no andare con mucho rodeo quiero saber si alguien de aqui esta dispuesto a hacerme el favor de descompilar varios .exe para poder ver su codigo, vamos son como 5 o 6 pero entre todos se llevan si no calculo mal unos 500 Kb....

Si alguien esta dispuesto se lo agradecere mucho...

Bye
#9
Yo estoy detras de un firewall por lo tanto el Post se lo mando a mi proxy y el a otro programa que tengo que hace funcion de Servidor como hago para se mantenga esa conexion activa, keep alive...

Quisiera que no se me cayera para poder seguir pasando mas datos como un tunnel...

Alguien tiene alguna idea....
#10
Tengo un Soft Cliente y otro Servidor, lo que busco es hacer una conexion HTTP entre ellos a traves de mi Proxy, pero lo que sucede es que las conexiones que he logrado hacer el proxy me las cierra, o sea hago una peticion POST me llega al Soft que hace funcion de Servidor y el me contesta pero ya ahi termina esa conexion para enviar datos de nuevo tengo que hacer otra peticion POST o GET nueva.. como la puedo hacer lo que se dice PERSISTENTE....Gracias por todo....
#11
Para mi un Tunnel es una 1ca conexion por la cual realizare otras muchas mas sin que mi proxy se entere...

Por ejemplo una conexion SSH...

Ahora este proyecto lo encontre por ahi, y funciona de esta manera, el que hace funcion de CLIENTE establece una primera conexion usando el metodo GET a traves del Proxy para conectarse con el que hace funcion de SERVIDOR, despues hace otra con el metodo POST para supuestamente establecer la conexion que le pedimos..por ej: un Telnet....

Bueno usd lo veran...Les dire como lo configure yo para que al menos el Telnet funcionara...

Invonveniente...

Cuando logro hacer el Telnet en el Proxy me saca muchas trazas.....

Y bueno no puedo ni navegar ni hacer nada de nada, no se pq.. haber si alguien con mas ojos ve algo que yo no vi y dice aqui pq...

Esta es la web del codigo....

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=49438&lngWId=1&txtForceRefresh=517200717271667124
#12
Pues eso trato de abrir un Proyecto que esta en una plantilla de Excel y el mismo parace que lo programaron para que pidiera Pass, como puedo kitarme ese lio...si necesitan que el envien la plantilla me dicen a donde, que es una boberia...

Bueno ideas...

Saludos
#13
Necesito que cuando traten de conectarse mediante mi Soft a mi Server que me chequee si el DNS esta trabajando, probe con un codigo que lo que me hacia un ping pero hay Redes que me tienen bloqueado el ping y no hay manera de que me funcione... alguna idea...

Saludos
#14
Pues eso necesito librarme de un error de un Soft que lo 1ero que el hace es chekear si un DNS existe si no existe me saca un Errorsazo con el nombre del DNS y vamos que no me cuadra que se me vea, por lo que yo hare primero el LookUp y si me da lio a mi que no siga el Soft y pueda mostrar un Error mio... Grx

Help Me.... Ideas...
#15
Bueno veran tengo un Soft que me genera un Mensaje de Error, y necesito poder ocultar ese mensaje y mostrar uno mio, como si fuese con el Error Next Resume... necesitaria saber alguna informacion especifica de dicho mensaje...ah la misma no se me muestra en la barra de tareas... como es un mensaje es logico... bueno ya saben AYUDA, jajaja..

Alguna idea saludos...

grx antemano..
#16
Reeee...help...

toy trabao con la API RegLoadKey creo que es esa...
#17
Hola tengo un codigo con el cual logro ocultar una X ventana, ahora que sucede que la dicha ventana puede demorarse en mostrarse por X motivos, si yo quisiera que mi Soft al dectetarla la ocultara podria hacerlo con un Timer verdad...

Alguna otra idea...
#18
Yo mando a ejecutar un X Soft desde mi proyecto y logicamente el mismo genera una serie de eventos como mensajes de diferentes tipos de errores o alertas entre otros...

Bien lo q necesito es poder controlar en este caso cualquier accion del mismo. Por ejemplo cuando lo llamo lo hago con una serie de parametros ej:C:\putty -N -C -D 1080 -P 443 -ssh user@dns -pw pass esto me genera una ventana con el titulo del DNS dicha ventana mediante codigo hago q se oculte Todo esto funciona bien siempre y cuando logicamente este todo bien configurado.Ahora hay veces q no todo sale bien y la ventana q deberia ocultar por razones como la de no configurar correctamente el proxy en el putty en este caso no se me oculta...

Una idea es hacer un ciclo hasta q dicha ventana aparezca y una vez oculta se detenga el ciclo pero creo q esto no funcionaria al 100%..

Por eso creo q si lo pudiera echar andar dentro de mi programa tuviera mas control y evitaria asi la muestra de informacion delicada.

Ideas por favorr....
#19
Pos eso gente quiero ejecutar un Soft desde mi programa...o sea no es ejecutarlo y ya, mas bien hacer que trabaje sobre mi Programa...como si fuese un FOrm mas...algo asi...

Espero que me hallan entendido...
#20
resultado = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\SimonTatham\PuTTY\Sessions\Default%20Settings", 0, KEY_ALL_ACCESS, hKey)
    Dim Port
    Port = Val(Text4)
   
    If resultado = ERROR_SUCCESS Then
        RegSetValueEx hKey, "ProxyPort", 0, REG_DWORD, Port, 4
        End
    End If

Lo pongo asi encuero pero ya las funciones estan declaradas con las constantes codigo como tal funciona lo que sencillamente no me agrega el valor que deseo....

Como ven en la linea RegSetValue.... el valor DWORD lo quiero tomar de un Text, ya lo converti en numero y no me lo agrega me agrea un 5... pq sucede esto, sin embargo le pongo un numero en ves de la Variable "Port" y pincha bien... bueno diganme algo....grx
#21
Bueno denme la luz pq no tengo idea alguna...

Saludos...
#22
Programación Visual Basic / Conexion Ssh....
13 Noviembre 2006, 19:18 PM
Quiero hacer que mi soft haga una conexion a un SERVER SSH...

Alguna idea para empezar.... Thx....

Bye
#23
Programación Visual Basic / Registro de Windows!!!
13 Noviembre 2006, 19:14 PM
Ola, porfavor que alguien cuando tenga un chance me envie Tuto de las diferentes funciones para trabajar el Registro de Windows, mas exacto, ejemplos a la hora de agregar y kitar CUALQUIER tipo de claves del Registro...

Grxxx

Otra cosa tengo un Soft que de el mismo se Genera una Ventanita que no se muestra ni en la Barra ni en los Procesos... como puedo hacer referencia a ella...

Thx
#24
Necesito un ejemplo sencillito de como crear, modificar, borrar...registros..

Algo que pueda modificar con mis datos..

Grax

GRax
#25
Este es mi problema, tengo un Soft que la configuracion me la guarda en un TXT, yo lo que necesito es que mi Soft en Visual Basic lleve esa configuración ya sea guardada en una Variable o de otra manera "no se" y al ejecutarlo me cree el fichero con dicho Config y me lo borre a la misma vez......

O poder copiar una Linea especifica dentro del TXT......seria mas facil...

Si me pudieran decir exactamente en donde tengo que buscar...
#26
Como puedo saber el Nombre de Usuario de la conexion remota con la que estoy conectado.....


Salu2

Grx antemano
#27
Option Explicit

Private Inicio As Single, Dif As Single, Total As Single
Dim segun As Integer
Dim minu As Integer
Dim hor As Integer
Dim resumen As String


Private Sub Command1_Click()
Dim Total
Open "C:\Total.txt" For Output Shared As #1
    Write #1, Dif
Close #1
Unload Me
End Sub

Private Sub Form_Load()
If (Dir("C:\Total.txt") <> "") Then
    Exit Sub
Else
    Open "C:\Total.txt" For Output Shared As #1
        Write #1, 60 'Aqui pones la cantidad de tiempo en segundos que deseas que la aplicación trabaje
    Close #1
End If

Open "C:\Inicio.txt" For Output Shared As #1
   Write #1, Timer
Close #1
End Sub

Private Sub Timer1_Timer()
Static contador As Integer
contador = contador + 1
segun = segun + 1
    If segun = 60 Then
        minu = minu + 1
        segun = 0
    End If
    If minu = 60 Then
        hor = hor + 1
        minu = 0
    End If
    resumen = Format(hor, "00") & ":" & Format(minu, "00") & ":" & Format(segun, "00")
    Etiqueta1.Caption = resumen

Open "C:\Inicio.txt" For Input As #1
   Input #1, Inicio
Close #1
Open "C:\Total.txt" For Input As #1
    Input #1, Total
Close #1
Dif = Total - segun
Debug.Print Dif
Open "C:\Dif.txt" For Output Shared As #1
    Write #1, Dif
Close #1
If Dif = 0 Then
    MsgBox "Se acabo tu Tiempo", vbCritical, "Time Out"
    Unload Me
Else
    Exit Sub
End If
End Sub

Se que no es el mejor pero PINCHA...

Haber si alguien se embulla y me ayuda a guardar los tiempos en ves de TXT en el Registro... Salu2...

Posteenn
#28
Private Sub Timer1_Timer()
Dim a
a = a + 1
Debug.Print a
End Sub

En ves de irme Sumando 1, se me queda en 1........ No suma 1, 2 ,3, 4....

Pq???????

Salu2
#29
Programación Visual Basic / Sobre Registro
10 Marzo 2006, 21:21 PM
Hola..Estoy haciendo un Formulario que cuando lo descargas comienza un conteo con un Timer para saber el tiempo que ha estado abierto el programa...Estoy trabado en la parte de meter el tiempo que consumio en el Registro y que se guarde ahi para que la proxima ves que se descargue el Formulario busque en el Registro el ultimo tiempo guardado y empieze a contar desde ahi... ;D...

Estoy trabado en la constante que debo utilizar....Pues probe con REG_SZ y me da ERROR....

Salu2
#30
Hola Programadores...

En mi Pc tengo 3 cuentas de acceso remoto para conectarme por Modem... Lo que deseo saber es que cuenta esta activa, pero ademas quisiera saber el "nombre de usuario" que tiene la misma...

Salu2
#31
Programación Visual Basic / Hwnd
3 Marzo 2006, 21:12 PM
Con este codigo pongo mi Formulario en el Tray, pero lo que necesito es poner otra aplicación en el TRAY ej: Nero, Mozilla... quisiera por favor que me falta y que debo modificar...

Thx

Option Explicit

Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, _
   ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205
Public Const WM_ACTIVATEAPP = &H1C
Public Const NIF_ICON = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_TIP = &H4
Public Const NIM_ADD = &H0
Public Const NIM_DELETE = &H2
Public Const MAX_TOOLTIP As Integer = 64
Public Const GWL_WNDPROC = (-4)

Type NOTIFYICONDATA
   cbSize As Long
   hwnd As Long
   uID As Long
   uFlags As Long
   uCallbackMessage As Long
   hIcon As Long
   szTip As String * MAX_TOOLTIP
End Type

Public nfIconData As NOTIFYICONDATA
Private FHandle As Long     ' Storage for form handle
Private WndProc As Long     ' Address of our handler
Private Hooking As Boolean  ' Hooking indicator

Public Sub AddIconToTray(MeHwnd As Long, MeIcon As Long, MeIconHandle As Long, Tip As String)
With nfIconData
   .hwnd = MeHwnd
   .uID = MeIcon
   .uFlags = NIF_ICON Or NIF_MESSAGE Or NIF_TIP
   .uCallbackMessage = WM_RBUTTONUP
   .hIcon = MeIconHandle
   .szTip = Tip & Chr$(0)
   .cbSize = Len(nfIconData)
End With
Shell_NotifyIcon NIM_ADD, nfIconData
End Sub

Public Sub RemoveIconFromTray()
Shell_NotifyIcon NIM_DELETE, nfIconData
End Sub

Public Sub Hook(Lwnd As Long)
If Hooking = False Then
   FHandle = Lwnd
   WndProc = SetWindowLong(Lwnd, GWL_WNDPROC, AddressOf WindowProc)
   Hooking = True
End If
End Sub

Public Sub Unhook()
If Hooking = True Then
   SetWindowLong FHandle, GWL_WNDPROC, WndProc
   Hooking = False
End If
End Sub

If Hooking = True Then
   If uMsg = WM_RBUTTONUP And lParam = WM_RBUTTONDOWN Then
      form1.SysTrayMouseEventHandler  ' Pass the event back to the form handler
      WindowProc = True               ' Let windows know we handled it
      Exit Function
   End If
   WindowProc = CallWindowProc(WndProc, hw, uMsg, wParam, lParam) ' Pass it along
End If
End Function

'in form
Private Sub Command1_Click()
Hook Me.hwnd   ' Set up our handler
AddIconToTray Me.hwnd, Me.Icon, Me.Icon.Handle, "This is a test tip"
Me.Hide
End Sub

' Handler for mouse events occuring in system tray.
Public Sub SysTrayMouseEventHandler()
SetForegroundWindow Me.hwnd
PopupMenu RCPopup, vbPopupMenuRightButton
End Sub

Private Sub msg1_Click()
MsgBox "This is a test message", vbOKOnly, "Hello"
End Sub

Private Sub Rest1_Click()
Unhook    ' Return event control to windows
Me.Show
RemoveIconFromTray
End Sub
#32
Señores esto es lo que me sucede...

Tengo un programa llamado Putty.exe, cuando el esta trabajando me muestra en su barra de titulo un texto que no quiero que se muestre...en fin se me ocurrio..

1-Minimizar la aplicación en el Tray y permitir cerrarla desde mi aplicación o desde el mismo Icono del Tray..
2- Ocultar el proceso y permitir cerrarlo desde mi Programa...

Si me dieran los Nortes, pq por mas que recopilo información y trato de armar el rompecabezas no puedo...

O si alguien tiene alguna idea mas sencilla para Ocultar o Modificar ese Texto desde mi Aplicación...
#33
Programación Visual Basic / Sobre Minimizar
28 Febrero 2006, 20:44 PM
Lo que quiero es simple, necesito Minimizar una X aplicación al lado del reloj y que no se permita restaurar....quisiera aprender tambien algunas otras funciones que intervegan con este tema para ideas futuras..Thx

Cuando me refiero a X aplicación, esta no tiene nada que ver con el Vb6...ej: Nero.....

Salu2

Yes I can't
#34
Lo que quiero es simple, necesito Minimizar una X aplicación al lado del reloj y que no se permita restaurar....

Y creo que la cuestión esta con el APP...

Cuando me refiero a X aplicación, esta no tiene nada que ver con el Vb6...ej: Nero.....

Salu2
#35
Señores como puedo saber si actualmente estoy conectado con mi conexion remota...

Salu2

Necesito minimizar una X aplicación y que a su vez no se pueda restaurar...

Salu2
#36
Programación Visual Basic / Sobre API's
13 Febrero 2006, 20:58 PM
Ola, si alguien me pudiera dar algun manual que me explique la accion de cada API's....

Salu2