2024-04-04
	-Released HObufs
2024-04-20
	-First Purchase of HObfus form Britain
2024-05-01
	-[ZEBRA1211] Implemented 'insert random string at the beginning of JavaScript'
2024-05-10
	-[ZEBRA1255]
		Added date to each PHP example file.
		Removed `begin-func` comments from example PHP files
		Removed echo "<scr"."ipt>"; because it seems Windows Defender stopped
			tagetting <script> 
2024-05-14
	-[ZEBRA1266]
		Handle the older version of doctype:
			-----------------------------------------------------------------
			<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
			-----------------------------------------------------------------
			//@@ remove <!doctype html> from text
			//@@ pattern='/^\s*<!doctype\s+html[^>]*>/i'
			//@@ pattern="/^\\s*<!doctype\\s+html[^>]*>/i"
			if($doctype=preg_match("/^\\s*<!doctype\\s+html[^>]*>/i",
				$text,$mx)?$mx[0]:null){
				$text=substr($text,strlen($doctype));
				$doctype=trim($doctype);
			}
			-----------------------------------------------------------------
		Added 'echo' to config.inc.php in HObfus
			-----------------------------------------------------------------
			// It is up to you how you utilize the value of the variable.
			// You may want to save it to a file and send it to a browser
			// at a later time. To send it to a browser, use 'echo' like
			//
			// echo $my_code;
			-----------------------------------------------------------------
2024-06-11
	[ZEBRA1433]
		Moved document.write to another line in JSX.

			-----------------------------------------------------------------
			HObfus.inc.php
			-----------------------------------------------------------------
			//@@ output code
			$_qax.$_docwrite=((
				$_master_obj,
				$_local,
				$_f_a,
				$_f_b,
				$_random_string_func
			)=>{
				//@@ random string generator
				$_random_string_func="rAx1poBsdfC";
				$_local[$_random_string_func]=($_ch,$_n,$_s,$_patt,$_i)=>{
					$_s="";
					$_patt="abcdefghijklmnopqrstuvwxyz0123456789";
					for($_i=0;$_i<$_n;$_i++){
						$_s+=$_patt.charAt(Math.floor(Math.random()*$_patt.length));
					}
					return $_ch+$_s;
				};
				//@@ setup `$_f_a` and `$_f_b` with random string generator
				$_f_a=$_local[$_random_string_func]("a",134);
				$_f_b=$_local[$_random_string_func]("b",122);
				//@@ this is a `B` function that emits the output string
				$_local[$_f_b]=($_obj)=>{
					//@@ delete '$_f_a' and '$_f_b'
					delete $_window[$_f_a];
					delete $_window[$_f_b];
					//@@ check if master_obj and obj are identical
					return($_master_obj===$_obj)?$_rstr:"";
				};
				//@@ call a local function with the same name
				$_window[$_f_a]=$_document.write.bind($_document);
				$_window[$_f_b]=($_obj)=>$_local[$_f_b]($_obj);
				//@@ In the following Function creatiion, you are passing
				//@@ `this` parameter. We assume that it's not possible to
				//@@ access to the `this` parameter, so we use it to
				//@@ check if `$_f_b()` is called from inside this Function(....)
				//@@ instead of being called directly.
				return(new $_window.Function($_f_a+"("+$_f_b+"("+"this"+"))")).bind($_master_obj);
				//@@ Unfortunately, you can not delete '$_f_a' and '$_f_b' in this function
				//@@ becuase they must exist when the function is excuted.
			})({},{});

			//@@[BEGIN:js-qax-block]
			$_qax.$_docwrite();
			//@@[END:js-qax-block]
			-----------------------------------------------------------------

			-----------------------------------------------------------------
			CHObfusjsx.class.php
			-----------------------------------------------------------------
			public static function make($opx,$osr,$txt){

				$linex=array();
				$linex[]=CHObfusJsx_passcode::make($opx,$osr);
				if($opx["enable-js-onerr"]){
					$linex[]=CHObfusJsx_onerr::make($opx,$osr);
				}
				$linex[]=CHObfusJsx_hexstr::make($opx,$osr);
				$linex[]=CHObfusJsx_protocol::make($opx,$osr);
				$linex[]=CHObfusJsx_hostname::make($opx,$osr);
				$linex[]=CHObfusJsx_rscript::make($opx,$osr);
				$linex[]=CHObfusJsx_rcomment::make($opx,$osr);
				$linex[]=$txt;
				$linex[]=CHObfusJsx_docwrite::make($opx,$osr);<-------
			-----------------------------------------------------------------
			[NEW] CHObfusJsx_docwrite.class.php
			-----------------------------------------------------------------

		Added hobfus/index.php that redrects to examples/index.php


