|
| 1 | +mod solver; |
| 2 | +use byteorder::{BigEndian, ByteOrder, LittleEndian}; |
| 3 | +use solver::Solver; |
| 4 | +use std::str::from_utf8_unchecked; |
| 5 | + |
| 6 | +fn main() { |
| 7 | + let body = "{\n \"application_manifest\" : \"2.AdVcYX_6cIB15rBXSWb1pUb9aa48my0Doxp30jgW63NLyRNKh1eelG9GwMxRC2ups8te4VstDQrvm3zRsnlWCQ0qNDLGNb3viRDYQ_NkyJA0RrXYukm3_fXoe8Ca3-TLKK6oa-Etd1p7_z2yc9t9-bIlpZ5dMX366JK91R7S3g==\"\n}"; |
| 8 | + // // // dbg!(body.len()); |
| 9 | + // // let body = serde_json::to_string_pretty(&value).unwrap(); |
| 10 | + dbg!(solver::encode_payload(&body)); |
| 11 | + // // let device = solver::Device::new(); |
| 12 | + // // dbg!(&device); |
| 13 | + |
| 14 | + let solver = Solver::new("f7eff4cc-cbe4-4d3e-916f-1711b38e7afa"); |
| 15 | + dbg!(solver.solve()); |
| 16 | + // // // println!("{}", ); |
| 17 | + |
| 18 | + // // let pre = "{\"application_manifest\":\"2.AdVcYX_6cIB15rBXSWb1pUb9aa48my0Doxp30jgW63NLyRNKh1eelG9GwMxRC2ups8te4VstDQrvm3zRsnlWCQ0qNDLGNb3viRDYQ_NkyJA0RrXYukm3_fXoe8Ca3-TLKK6oa-Etd1p7_z2yc9t9-bIlpZ5dMX366JK91R7S3g==\"}"; |
| 19 | + // let x = base64::decode_config("Y84aQUVt-gajNA5qlH-V0bIF6j6jjpooIDIcr5zAuFLxI_YthIZo1M484GXgAtr8vdSttijEJWrXKxmqWWgMY53NBpWumglAYAAERhCh-p9VEtQ-4u1ya3NGbXE5jdB0otxJP1GVrzjw1EN8LtNrd30pXGA541tl-EJMUsfEEzxoThrFJsulyF3LE0O52iv8qrRGDIzuL-MMPfgbujg5rl5a3Ka3TcCaxuDqREppBK475CeV1OuHv7yH37CF6IqCFqMWHXWrePF8IWlD11vdwwa4SM6QjouZ", base64::URL_SAFE_NO_PAD).unwrap(); |
| 20 | + |
| 21 | + // let y = base64::decode_config("Vu8MsxOkp1z1_VMwlH-V0bIF6j6jjpooIDIcr5zAuFLxI_YthIZo1M484GXgAtr8vdSttijEJWrXKxmqWWgMY53NBpWumglAYAAERhCh-p9VEtQ-4u1ya3NGbXE5jdB0otxJP1GVrzjw1EN8LtNrd30pXGA541tl-EJMUsfEEzxoThrFJsulyF3LE0O52iv8qrRGDIzuL-MMPfgbujg5rl5a3Ka3TcCaxuDqREppBK475CeV1OuHv7yH37CF6IqCFqMWHXWrePF8IWlD11vdwwa4SM6QjouZ", base64::URL_SAFE_NO_PAD).unwrap(); |
| 22 | + // dbg!(BigEndian::read_u32(&x[0..4])); |
| 23 | + // dbg!(BigEndian::read_u32(&y[0..4])); |
| 24 | + // dbg!(BigEndian::read_u32(&x[0..4]) / 0x4678d05); |
| 25 | + // dbg!(BigEndian::read_u32(&y[0..4]) / 0x4678d05); |
| 26 | + // let mut buf = [0; 4]; |
| 27 | + // BigEndian::write_u32(&mut buf, BigEndian::read_u32(&x[0..4]) / 0x4678d05); |
| 28 | + // println!("{:?}", buf); |
| 29 | + // dbg!((BigEndian::read_u32(&x[4..8]) ^ 201) / 0x4678d05); |
| 30 | + // dbg!((BigEndian::read_u32(&y[4..8]) ^ 201) / 0x4678d05); |
| 31 | + // for i in 0..12 { |
| 32 | + // x[i] = |
| 33 | + // } |
| 34 | + |
| 35 | + // let value = base64::encode_config(&x, base64::URL_SAFE_NO_PAD); |
| 36 | + |
| 37 | + // println!("{:?}", &pre.as_bytes()[..4]); |
| 38 | + // println!("{:?}\n{:?}", &x[12..16], &y[12..16]); |
| 39 | + // dbg!(BigEndian::read_u32(&pre.as_bytes()[..4])); |
| 40 | + // // dbg!(); |
| 41 | + // dbg!(BigEndian::read_u32(&y[12..16])); |
| 42 | + |
| 43 | + // let val = BigEndian::read_u32(&pre.as_bytes()[..4]); |
| 44 | + // let z = BigEndian::read_u32(&x[8..12]); |
| 45 | + |
| 46 | + // for v in 0..0xFFFFFFFF as u32 { |
| 47 | + // // dbg!(z ^ v); |
| 48 | + // if z ^ v / 0x4678d05 == val { |
| 49 | + // let mut buf = [0; 4]; |
| 50 | + // BigEndian::write_u32(&mut buf, v); |
| 51 | + // dbg!(buf); |
| 52 | + // dbg!(v); |
| 53 | + // println!("{:?}\n{:?}", &x[..12], &y[..12]); |
| 54 | + // return; |
| 55 | + // } |
| 56 | + // }; |
| 57 | + |
| 58 | + // let random_number: u32 = rand::random(); |
| 59 | + |
| 60 | + // let x_1 = LittleEndian::read_u64(&x[..]); |
| 61 | + // let x_2 = BigEndian::read_u32(&x[4..8]); |
| 62 | + // let x_4 = BigEndian::read_u32(&x[8..]); |
| 63 | + // dbg!(x_1); |
| 64 | + // dbg!(x_2); |
| 65 | + // dbg!(x_4); |
| 66 | + // dbg!(x_1); |
| 67 | + // dbg!(x_2); |
| 68 | + // dbg!(x_3); |
| 69 | + // dbg!(x_4); |
| 70 | + // let x_2 = (x_2 * 0x4678d05 & 0xff00ff00) >> 8 | (x_2 * 0x4678d05 & 0xff00ff) << 8; |
| 71 | + // println!("{}", x_2 >> 0x10 | x_2 << 0x10) |
| 72 | + |
| 73 | + // solver::encode_payload("23456745345678"); |
| 74 | +} |
0 commit comments