Skip to content

Commit e7cef2c

Browse files
committed
Initial commit very unclean
0 parents  commit e7cef2c

File tree

5 files changed

+574
-0
lines changed

5 files changed

+574
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/target

Cargo.lock

Lines changed: 202 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
[package]
2+
name = "distil"
3+
version = "0.1.0"
4+
authors = ["Hasan Gondal <uh@hasan.wtf>"]
5+
edition = "2018"
6+
7+
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
8+
9+
[dependencies]
10+
rand = "0.7.3"
11+
base64 = "0.12.3"
12+
byteorder = "1.3.4"
13+
serde_json = "1.0.57"
14+
serde = { version = "1.0.115", features = ["derive"] }
15+
indexmap = { version = "1.6.0", features = ["serde-1"] }
16+
17+

src/main.rs

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
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

Comments
 (0)