CTF Tools
open System open System.Text open System.IO let output (output : string) = printf "[!] " let sw = new StreamWriter("result.txt") sw.WriteLine(output) sw.Close() output let getFile (path : string) = let sr = new StreamReader(path) let cont = sr.ReadToEnd() sr.Close() cont let removeCRLF (str : string) = str.Replace("\n", "").Replace("\r", "").Replace(" ", "") let InputAndOutput (func : string -> string) tip = printfn "[*] 1.string" printfn "[*] 2.file path as string" printf ">" let result = "" match Console.ReadLine() with | "1" -> tip |> printf |> Console.ReadLine |> func |> Console.WriteLine | "2" -> tip |> printf |> Console.ReadLine |> getFile |> func |> Console.WriteLine | _ -> printf "" let Base64ToString (base64 : string) = base64 |> removeCRLF |> Convert.FromBase64String |> ASCIIEncoding.Default.GetString |> output let StringToBase64 str = Encoding.Default.GetBytes(s = str) |> Convert.ToBase64String |> output [<EntryPoint>] let main argv= printfn "CTF Tools" let mutable cont = true while cont do printfn "[-] other" printfn "[*] 00.Remove CRLF" printfn "[-] base64" printfn "[*] 11.base64 to string" printfn "[*] 12.string to base64" printfn "[*] 13.file to base64" printfn "[*] 14.base64 to file" printf ">" match Console.ReadLine() with | "00" -> InputAndOutput removeCRLF ">" | "11" -> InputAndOutput Base64ToString ">" | "12" -> InputAndOutput StringToBase64 ">" | ".." -> cont <- false | "_" -> "result.txt" |> getFile |> Console.WriteLine | _ -> Console.WriteLine("") printfn "" 0