123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- package QuickVerifyCrap;
- import java.io.*;
- import java.util.ArrayList;
- import java.util.HashSet;
- import java.util.List;
- public class PWNaFirmwareGrabScriptGenerator {
- public static void main(String[] args){
- try{
- BufferedReader br = new BufferedReader(new FileReader("Q:\\LOA\\000013\\S30-FW\\firmware2.dat"));
- String fwline = br.readLine();
- BufferedWriter w = new BufferedWriter(new FileWriter("Q:\\LOA\\000013\\S30-FW\\firmwarehunt-reloaded.txt"));
- w.write("#!/bin/bash\n");
- HashSet<String> linesAdded = new HashSet<>();
- while(fwline!=null)
- {
- System.out.println(fwline);
- if(fwline.contains(":"))
- {
- if(fwline.contains(".img"))
- {
- var line = fwline.split(":");
- String filename = line[line.length-1];
- String[] magic = filename.split("-v");
- boolean fuckingoddity = false;
- if(magic.length==1)
- {
- fuckingoddity = true;
- magic = filename.split("_v");
- }
- String version = magic[1];
- String[] vsplit = version.split("\\.");
- String suffix = "";
- int major=0,minor=0,patch=0;
- major=Integer.valueOf(vsplit[0]);
- if(vsplit.length==4)
- {
- minor = Integer.valueOf(vsplit[1]);
- patch = Integer.valueOf(vsplit[2].substring(0,1));
- if(vsplit[2].length()>1)
- {
- suffix = vsplit[2].substring(1)+"."+vsplit[3];
- }
- else
- {
- suffix = "."+vsplit[3];
- }
- }
- else
- {
- if(vsplit[1].length()>1)
- {
- minor = Integer.valueOf(vsplit[1].substring(0,1));
- suffix = vsplit[1].substring(1)+"."+vsplit[2];
- }
- else
- {
- minor = Integer.valueOf(vsplit[1].substring(0,1));
- suffix = "."+vsplit[2];
- }
- }
- String[] synthesized = synthesizeVersionNumbers(major,minor,patch,fuckingoddity?"_v":"-v");
- for (String innerline:synthesized)
- {
- String newline = "wget -nc https://firmware.sena.com/senabluetoothmanager/"+magic[0]+innerline+suffix;
- if(!linesAdded.contains(newline))
- {
- w.write(newline+"\n");
- linesAdded.add(newline);
- }
- }
- }
- }
- fwline = br.readLine();
- }
- w.close();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- private static String[] synthesizeVersionNumbers(int major,int minor, int patch,String prefix)
- {
- System.out.println(major+"--"+minor+"--"+patch);
- List<String> temp = new ArrayList<>();
- //temp.add(prefix+(major+1)+".0.0"); // poking for next major
- //temp.add(prefix+(major+1)+".0"); // poking for next major
- //temp.add(prefix+(major)+"."+(minor+1)+".0"); // poking for next minor
- temp.add(prefix+(major)+"."+(minor+1)); // poking for next minor
- //temp.add(prefix+(major)+"."+minor+"."+(patch+1)); // poking for next patch
- System.out.println(major+"--"+minor+"--"+patch);
- /*
- while(major>0&&minor>=0&&patch>=0)
- {
- temp.add(prefix+(major)+"."+minor+"."+(patch));
- if(patch==0)
- {
- temp.add(prefix+(major)+"."+minor); // specialcase to probe for unset patch version versions
- }
- patch--;
- if(patch<0)
- {
- patch=9;
- minor--;
- }
- if(minor<0)
- {
- minor=9;
- major--;
- }
- }/**/
- return temp.toArray(new String[]{});
- }
- }
|