@ -8,18 +8,18 @@ import ( 
			
		
	
		
			
				
						"hack-browser-data/internal/browser"   
			
		
	
		
			
				
						"hack-browser-data/internal/log"   
			
		
	
		
			
				
						"hack-browser-data/internal/outputter"   
			
		
	
		
			
				
						"hack-browser-data/internal/utils"   
			
		
	
		
			
				
						"hack-browser-data/internal/utils/fileutil "   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
						"github.com/urfave/cli/v2"   
			
		
	
		
			
				
					)  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					var  (  
			
		
	
		
			
				
						browserName         string   
			
		
	
		
			
				
						exportDir      string   
			
		
	
		
			
				
						outputFormat        string   
			
		
	
		
			
				
						verbose             bool   
			
		
	
		
			
				
						compress            bool   
			
		
	
		
			
				
						customProfilePath string   
			
		
	
		
			
				
						browserName   string   
			
		
	
		
			
				
						outputDir string   
			
		
	
		
			
				
						outputFormat  string   
			
		
	
		
			
				
						verbose       bool   
			
		
	
		
			
				
						compress      bool   
			
		
	
		
			
				
						profilePath  string   
			
		
	
		
			
				
					)  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					func  main ( )  {  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -28,30 +28,33 @@ func main() { 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					func  Execute ( )  {  
			
		
	
		
			
				
						app  :=  & cli . App {   
			
		
	
		
			
				
							Name :   "hack-browser-data" ,   
			
		
	
		
			
				
							Usage :  "Export passwords/cookies/history/bookmarks from browser" ,   
			
		
	
		
			
				
							UsageText :  "[hack-browser-data -b chrome -f json -dir results -cc]\n 	 Get all browingdata(password/cookie/history/bookmark) from chrome " ,   
			
		
	
		
			
				
							Version :  "0.4.0" ,   
			
		
	
		
			
				
							Name :        "hack-browser-data" ,   
			
		
	
		
			
				
							Usage :       "Export passwords/cookies/history/bookmarks from browser" ,   
			
		
	
		
			
				
							UsageText :  "[hack-browser-data -b chrome -f json -dir results -cc]\nGet all browingdata(password/cookie/history/bookmark) from browser " ,   
			
		
	
		
			
				
							Version :     "0.4.0" ,   
			
		
	
		
			
				
							Flags :  [ ] cli . Flag {   
			
		
	
		
			
				
								& cli . BoolFlag { Name :  "verbose" ,  Aliases :  [ ] string { "vv" } ,  Destination :  & verbose ,  Value :  false ,  Usage :  "verbose" } ,   
			
		
	
		
			
				
								& cli . BoolFlag { Name :  "compress" ,  Aliases :  [ ] string { "cc" } ,  Destination :  & compress ,  Value :  false ,  Usage :  "compress result to zip" } ,   
			
		
	
		
			
				
								& cli . StringFlag { Name :  "browser" ,  Aliases :  [ ] string { "b" } ,  Destination :  & browserName ,  Value :  "all" ,  Usage :  "available browsers: all|"  +  strings . Join ( browser . ListBrowser ( ) ,  "|" ) } ,   
			
		
	
		
			
				
								& cli . StringFlag { Name :  "results-dir" ,  Aliases :  [ ] string { "dir" } ,  Destination :  & expor tDir,  Value :  "results" ,  Usage :  "export dir" } ,   
			
		
	
		
			
				
								& cli . StringFlag { Name :  "results-dir" ,  Aliases :  [ ] string { "dir" } ,  Destination :  & outpu tDir,  Value :  "results" ,  Usage :  "export dir" } ,   
			
		
	
		
			
				
								& cli . StringFlag { Name :  "format" ,  Aliases :  [ ] string { "f" } ,  Destination :  & outputFormat ,  Value :  "csv" ,  Usage :  "format, csv|json|console" } ,   
			
		
	
		
			
				
								& cli . StringFlag { Name :  "profile-dir-path" ,  Aliases :  [ ] string { "p" } ,  Destination :  & customP rofilePath,  Value :  "" ,  Usage :  "custom profile dir path, get with chrome://version" } ,   
			
		
	
		
			
				
								& cli . StringFlag { Name :  "profile-dir-path" ,  Aliases :  [ ] string { "p" } ,  Destination :  & p rofilePath,  Value :  "" ,  Usage :  "custom profile dir path, get with chrome://version" } ,   
			
		
	
		
			
				
							} ,   
			
		
	
		
			
				
							HideHelpCommand :  true ,   
			
		
	
		
			
				
							Action :  func ( c  * cli . Context )  error  {   
			
		
	
		
			
				
								var  (   
			
		
	
		
			
				
									browsers  [ ] browser . Browser   
			
		
	
		
			
				
									err       error   
			
		
	
		
			
				
								)   
			
		
	
		
			
				
								if  verbose  {   
			
		
	
		
			
				
									log . InitLog ( "debug" )   
			
		
	
		
			
				
								}  else  {   
			
		
	
		
			
				
									log . InitLog ( "error" )   
			
		
	
		
			
				
								}   
			
		
	
		
			
				
								browsers ,  err  =  browser . PickBrowser ( browserName )   
			
		
	
		
			
				
								var  (   
			
		
	
		
			
				
									browsers  [ ] browser . Browser   
			
		
	
		
			
				
									err       error   
			
		
	
		
			
				
								)   
			
		
	
		
			
				
								// if profilePath != "" {
   
			
		
	
		
			
				
								// 	browsers, err = browser.PickBrowserByProfilePath(browserName, profilePath)
   
			
		
	
		
			
				
								// }
   
			
		
	
		
			
				
								browsers ,  err  =  browser . PickBrowser ( browserName ,  profilePath )   
			
		
	
		
			
				
								if  err  !=  nil  {   
			
		
	
		
			
				
									log . Error ( err )   
			
		
	
		
			
				
								}   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -65,7 +68,10 @@ func Execute() { 
			
		
	
		
			
				
									var  f  * os . File   
			
		
	
		
			
				
									for  _ ,  source  :=  range  data . Sources  {   
			
		
	
		
			
				
										filename  :=  fmt . Sprintf ( "%s_%s.%s" ,  b . Name ( ) ,  source . Name ( ) ,  outputFormat )   
			
		
	
		
			
				
										f ,  err  =  output . CreateFile ( exportDir ,  filename )   
			
		
	
		
			
				
										f ,  err  =  output . CreateFile ( outputDir ,  filename )   
			
		
	
		
			
				
										if  err  !=  nil  {   
			
		
	
		
			
				
											log . Error ( err )   
			
		
	
		
			
				
										}   
			
		
	
		
			
				
										err  =  output . Write ( source ,  f )   
			
		
	
		
			
				
										if  err  !=  nil  {   
			
		
	
		
			
				
											log . Error ( err )   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -73,7 +79,7 @@ func Execute() { 
			
		
	
		
			
				
									}   
			
		
	
		
			
				
								}   
			
		
	
		
			
				
								if  compress  {   
			
		
	
		
			
				
									err  =  utils  . Compress ( expor tDir)   
			
		
	
		
			
				
									err  =  file util. CompressDir ( outpu tDir )   
			
		
	
		
			
				
									if  err  !=  nil  {   
			
		
	
		
			
				
										log . Error ( err )   
			
		
	
		
			
				
									}