myph-v2.git


myph-v2

~ rust shellcode loader with evasive capabilities
git clone https://github.com/djnnvx/myph-v2.git
log | files | refs | archive | README

build.rs (1351B)

      1 use std::env;
      2 use std::fs;
      3 use std::path::Path;
      4 
      5 // Include only the modules needed for build script
      6 mod internals_utils {
      7     include!("src/internals/templates/internals_utils.rs");
      8 }
      9 
     10 mod validation {
     11     include!("src/internals/templates/validation.rs");
     12 }
     13 
     14 // Re-export the functions we need
     15 use internals_utils::*;
     16 use validation::*;
     17 
     18 /// Generate the complete internals module source code for embedding in generated binaries
     19 fn generate_internals_source() -> String {
     20     format!(
     21         "{}\n\n{}\n\n{}\n\n{}\n\n{}\n\n{}\n\n{}\n\n{}",
     22         internals_hex_to_bytes(),
     23         internals_bytes_to_hex(),
     24         internals_xor_bytes(),
     25         internals_pad_pkcs7(),
     26         internals_unpad_pkcs7(),
     27         internals_is_valid_utf8(),
     28         internals_compute_checksum(),
     29         internals_validate_checksum()
     30     )
     31 }
     32 
     33 fn main() {
     34     let out_dir = env::var("OUT_DIR").unwrap();
     35     let dest_path = Path::new(&out_dir).join("internals_impl.rs");
     36 
     37     let implementation = generate_internals_source();
     38 
     39     fs::write(&dest_path, implementation).unwrap();
     40     println!("cargo:rerun-if-changed=build.rs");
     41     println!("cargo:rerun-if-changed=src/internals/templates/internals_utils.rs");
     42     println!("cargo:rerun-if-changed=src/internals/templates/encryption.rs");
     43     println!("cargo:rerun-if-changed=src/internals/templates/validation.rs");
     44 }