tool to create a relic export from network packets of a certain turn-based anime game

Overview

reliquary-archiver

tool to create a relic export from network packets of a certain turn-based anime game

json output format is based on the format of HSR-Scanner

made to be used with fribbels hsr optimizer

run

  • requires npcap (windows) or libpcap (linux)
    • when installing on windows, make sure to enable the "winpcap api-compatible mode". if this is grayed out for you, see here for more details
    • when building on Linux, set the CAP_NET_RAW capability on the resulting executable (via pcap(3pcap))
      sudo setcap CAP_NET_RAW=+ep target/release/reliquary-archiver
  • download latest release from here
  • Launch the game and get to this screen. Do not go into the game yet main menu start screen
  • run the archiver executable and wait until it says "listening with a timeout" archiver listening for timeout
  • start the game
  • if successful, the archiver should output a file to archiver_output.json archiver visual guide

cli usage

Usage: reliquary-archiver.exe [OPTIONS] [OUTPUT]

Arguments:
  [OUTPUT]  Path to output .json file to [default: archive_output.json]

Options:
      --pcap <PCAP>          Read packets from .pcap file instead of capturing live packets
      --timeout <TIMEOUT>    How long to wait in seconds until timeout is triggered (for live capture) [default: 120]
  -v, --verbose...           How verbose the output should be, can be set up to 3 times. Has no effect if RUST_LOG is set
  -l, --log-path <LOG_PATH>  Path to output log to
  -h, --help                 Print help

to customize logging, either

  • set the verbose flags
  • or set RUST_LOG env variable to customize logging, see here

to output logs to a file, provide --log-path <path>. file logs will always be trace-level.

build from source

  • follow instructions here
    • for me on windows, adding the Packet.lib and wpcap.lib from the sdk (check the x64 or arm dir) to this directory was enough to link successfully
  • cargo build / cargo run

library

want to do more with packet parsing? check out the standalone library the archiver is built on top off!

Comments
  • Application force closes upon logging into game

    Application force closes upon logging into game

    As title says, I run the program, log into game, and as the train goes hyperdrive, the application quits. From what I can tell, once I start logging in, only one line of output prints after the "Waiting with timeout 120secs" line before the whole thing force closes. I think it reads "connection established" but it closes too fast for me to see thing whole thing. I wish I could provide a screenshot, but I'm not fast enough to capture that output before the exe closes itself.

    opened by Exkalamity 12
  • Saving archive_output.json in the wrong location

    Saving archive_output.json in the wrong location

    For whatever reason, the program wasn't saving archive_output.json at all, throwing an application panicked error after the data was successfully gathered. So I was curious, and ran it as administrator instead of just letting the program send an admin request as it normally does. It said it worked, but I couldn't find the file. Turns out, it was saved in System32 of all places.

    I tried running the program through Terminal, and it then saved the output file in my specific User folder. Another time when I opened it from Everything (a search program), it saved the output to the Everything program folder.

    So I'm assuming it's saving not in Downloads where the program actually is, but instead (for some reason) in whatever folder the wrapper is in. Any idea why it'd be doing this for me?

    opened by WolfHeroEX 7
  • The application panicked (crashed) - Game Version 2.3

    The application panicked (crashed) - Game Version 2.3

    Hey guys,

    Application is amazing. Is there any plan to support current patch of the game 2.3? Getting the error below since the update.

    Thanks for all your amazing work!

    2024-06-20T20:43:20.009206Z INFO live_capture: reliquary_archiver: detected connection established The application panicked (crashed). Message: range end index 546923644 out of range for slice of length 996 Location: C:\Users\Ice.cargo\git\checkouts\reliquary-273ee92fcf463098\add4b40\src\network\mod.rs:131

    Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it. Run with RUST_BACKTRACE=full to include source snippets. Warning: SpanTrace capture is Unsupported. Ensure that you've setup a tracing-error ErrorLayer and the semver versions are compatible

    opened by emb3rlight 3
  • Relic/LC Location Fix for Trailblazer Paths

    Relic/LC Location Fix for Trailblazer Paths

    Fun fact! base_avatar_id for any TB relic and light cone will always be 8001, possibly even 8002 but I can't confirm because I chose Caelus instead of Stelle. The name lookup should not correctly set the location for all trailblazer paths

    image

    closes #12

    opened by FaeronGaming 3
  • unexpected EOF (Known) Issue

    unexpected EOF (Known) Issue

    Hi! I encountered the unexpected EOF issue that you mentioned in the release notes and was looking to provide logs if helpful:

    The following are the verbose logs from the archiver:

    PS C:\Users\<redacted>\Downloads> .\reliquary-archiver_v0.1.3.exe -v
    2024-04-08T11:40:55.097360Z  INFO config_map: reliquary_archiver::export::fribbels: initializing database from online sources, this might take a while...
    2024-04-08T11:41:00.749961Z  INFO live_capture: reliquary_archiver: instructions: go to main menu screen and go into train hyperdrive
    2024-04-08T11:41:00.750122Z  INFO live_capture: reliquary_archiver: listening with a timeout of 120 seconds...
    2024-04-08T11:41:21.895623Z  WARN live_capture:receive_packet{len=62}:parse_connection_packet: reliquary::network::connection: disconnected packet
    2024-04-08T11:41:21.896481Z  WARN live_capture:receive_packet{len=62}:parse_connection_packet: reliquary::network::connection: disconnected packet
    2024-04-08T11:41:47.903126Z  INFO live_capture:receive_packet{len=62}:parse_connection_packet: reliquary::network::connection: handshake requested
    2024-04-08T11:41:47.903428Z  INFO live_capture:receive_packet{len=62}: reliquary::network: handshake requested, resetting state
    2024-04-08T11:41:47.903620Z  INFO live_capture:receive_packet{len=62}:parse_connection_packet: reliquary::network::connection: handshake requested
    2024-04-08T11:41:47.903760Z  INFO live_capture:receive_packet{len=62}: reliquary::network: handshake requested, resetting state
    2024-04-08T11:41:47.931220Z  INFO live_capture: reliquary_archiver: detected connection established
    2024-04-08T11:41:47.931393Z  INFO live_capture: reliquary_archiver: detected connection established
    2024-04-08T11:41:47.953329Z  INFO live_capture:receive_packet{len=145}:try_new:new{conv_id=824870}: reliquary::network::kcp: new connection, created new kcp instance
    2024-04-08T11:41:47.953555Z  INFO live_capture:receive_packet{len=145}:receive_command{len=75}: reliquary::network::crypto: found initial decryption key version=315284530
    2024-04-08T11:41:47.953725Z  INFO live_capture:receive_packet{len=145}:receive_command{len=75}:command{command=GameCommand { command_id: 16, command_name: Some("PlayerGetTokenCsReq"), header_len: 2, data_len: 57 }}: reliquary::network: received
    2024-04-08T11:41:48.008084Z  INFO live_capture:receive_packet{len=70}:try_new:new{conv_id=824870}: reliquary::network::kcp: new connection, created new kcp instance
    2024-04-08T11:41:48.213204Z  INFO live_capture:receive_packet{len=105}:receive_command{len=35}:command{command=GameCommand { command_id: 60, command_name: Some("PlayerGetTokenScRsp"), header_len: 0, data_len: 19 }}: reliquary::network: received
    2024-04-08T11:41:48.213754Z  INFO live_capture:receive_packet{len=105}:receive_command{len=35}:command{command=GameCommand { command_id: 60, command_name: Some("PlayerGetTokenScRsp"), header_len: 0, data_len: 19 }}: reliquary::network: setting new session key seed=17741017250029361150
    2024-04-08T11:41:48.241864Z  INFO live_capture:receive_packet{len=986}:receive_command{len=916}:command{command=GameCommand { command_id: 10, command_name: Some("PlayerLoginCsReq"), header_len: 2, data_len: 898 }}: reliquary::network: received
    2024-04-08T11:41:48.352219Z  INFO live_capture:receive_packet{len=142}:receive_command{len=72}:command{command=GameCommand { command_id: 33, command_name: Some("PlayerLoginScRsp"), header_len: 0, data_len: 56 }}: reliquary::network: received
    2024-04-08T11:41:48.352879Z  INFO live_capture: reliquary_archiver: detected login
    2024-04-08T11:41:48.354550Z  INFO live_capture:receive_packet{len=1178}:receive_command{len=12385}:command{command=GameCommand { command_id: 23, command_name: None, header_len: 12, data_len: 12357 }}: reliquary::network: received
    2024-04-08T11:41:48.354986Z  INFO live_capture:receive_packet{len=1178}:receive_command{len=28}:command{command=GameCommand { command_id: 31, command_name: Some("UpdateFeatureSwitchScNotify"), header_len: 12, data_len: 0 }}: reliquary::network: received
    2024-04-08T11:41:48.355348Z  INFO live_capture:receive_packet{len=1178}:receive_command{len=28}:command{command=GameCommand { command_id: 1478, command_name: Some("SyncServerSceneChangeNotify"), header_len: 12, data_len: 0 }}: reliquary::network: received
    2024-04-08T11:41:48.355653Z  INFO live_capture:receive_packet{len=1178}:receive_command{len=28}:command{command=GameCommand { command_id: 586, command_name: Some("SyncTurnFoodNotify"), header_len: 12, data_len: 0 }}: reliquary::network: received
    2024-04-08T11:41:48.356054Z  INFO live_capture:receive_packet{len=1178}:receive_command{len=38}:command{command=GameCommand { command_id: 81, command_name: Some("StaminaInfoScNotify"), header_len: 12, data_len: 10 }}: reliquary::network: received
    2024-04-08T11:41:48.356544Z  INFO live_capture:receive_packet{len=1178}:receive_command{len=35}:command{command=GameCommand { command_id: 1226, command_name: Some("DailyTaskDataScNotify"), header_len: 12, data_len: 7 }}: reliquary::network: received
    2024-04-08T11:41:48.357002Z  INFO live_capture:receive_packet{len=1178}:receive_command{len=28}:command{command=GameCommand { command_id: 2216, command_name: Some("RaidInfoNotify"), header_len: 12, data_len: 0 }}: reliquary::network: received
    2024-04-08T11:41:48.357441Z  INFO live_capture:receive_packet{len=1178}:receive_command{len=62}:command{command=GameCommand { command_id: 3010, command_name: Some("BattlePassInfoNotify"), header_len: 12, data_len: 34 }}: reliquary::network: received
    2024-04-08T11:41:48.412449Z  INFO live_capture:receive_packet{len=88}:receive_command{len=18}:command{command=GameCommand { command_id: 94, command_name: Some("GetLevelRewardTakenListCsReq"), header_len: 2, data_len: 0 }}: reliquary::network: received
    2024-04-08T11:41:48.418082Z  INFO live_capture:receive_packet{len=289}:receive_command{len=35}:command{command=GameCommand { command_id: 583, command_name: Some("ComposeLimitNumCompleteNotify"), header_len: 12, data_len: 7 }}: reliquary::network: received
    2024-04-08T11:41:48.418688Z  INFO live_capture:receive_packet{len=289}:receive_command{len=39}:command{command=GameCommand { command_id: 547, command_name: Some("GeneralVirtualItemDataNotify"), header_len: 12, data_len: 11 }}: reliquary::network: received
    2024-04-08T11:41:48.419169Z  INFO live_capture:receive_packet{len=289}:receive_command{len=31}:command{command=GameCommand { command_id: 6242, command_name: Some("StoryLineInfoScNotify"), header_len: 12, data_len: 3 }}: reliquary::network: received
    2024-04-08T11:41:48.419612Z  INFO live_capture:receive_packet{len=289}:receive_command{len=30}:command{command=GameCommand { command_id: 2987, command_name: Some("NewAssistHistoryNotify"), header_len: 12, data_len: 2 }}: reliquary::network: received
    2024-04-08T11:41:48.470902Z  INFO live_capture:receive_packet{len=169}:receive_command{len=99}:command{command=GameCommand { command_id: 96, command_name: Some("GetLevelRewardTakenListScRsp"), header_len: 12, data_len: 71 }}: reliquary::network: received
    2024-04-08T11:41:48.646940Z  INFO live_capture:receive_packet{len=88}:receive_command{len=18}:command{command=GameCommand { command_id: 29, command_name: Some("GetBasicInfoCsReq"), header_len: 2, data_len: 0 }}: reliquary::network: received
    2024-04-08T11:41:48.657431Z  INFO live_capture:receive_packet{len=88}:receive_command{len=18}:command{command=GameCommand { command_id: 32, command_name: Some("GetHeroBasicTypeInfoCsReq"), header_len: 2, data_len: 0 }}: reliquary::network: received
    2024-04-08T11:41:48.669711Z  INFO live_capture:receive_packet{len=88}:receive_command{len=18}:command{command=GameCommand { command_id: 510, command_name: Some("GetBagCsReq"), header_len: 2, data_len: 0 }}: reliquary::network: received
    2024-04-08T11:41:48.680331Z  INFO live_capture:receive_packet{len=88}:receive_command{len=18}:command{command=GameCommand { command_id: 532, command_name: Some("GetMarkItemListCsReq"), header_len: 2, data_len: 0 }}: reliquary::network: received
    2024-04-08T11:41:48.691522Z  INFO live_capture:receive_packet{len=88}:receive_command{len=18}:command{command=GameCommand { command_id: 2810, command_name: Some("GetPlayerBoardDataCsReq"), header_len: 2, data_len: 0 }}: reliquary::network: received
    2024-04-08T11:41:48.702235Z  INFO live_capture:receive_packet{len=90}:receive_command{len=20}:command{command=GameCommand { command_id: 310, command_name: Some("GetAvatarDataCsReq"), header_len: 2, data_len: 2 }}: reliquary::network: received
    2024-04-08T11:41:48.712872Z  INFO live_capture:receive_packet{len=88}:receive_command{len=18}:command{command=GameCommand { command_id: 2932, command_name: Some("GetCurAssistCsReq"), header_len: 2, data_len: 0 }}: reliquary::network: received
    2024-04-08T11:41:48.724219Z  INFO live_capture:receive_packet{len=88}:receive_command{len=18}:command{command=GameCommand { command_id: 766, command_name: Some("GetAllLineupDataCsReq"), header_len: 2, data_len: 0 }}: reliquary::network: received
    2024-04-08T11:41:48.725719Z  INFO live_capture:receive_packet{len=351}:receive_command{len=49}:command{command=GameCommand { command_id: 24, command_name: Some("GetBasicInfoScRsp"), header_len: 12, data_len: 21 }}: reliquary::network: received
    2024-04-08T11:41:48.725926Z  INFO live_capture:receive_packet{len=351}:receive_command{len=148}:command{command=GameCommand { command_id: 72, command_name: Some("GetHeroBasicTypeInfoScRsp"), header_len: 12, data_len: 120 }}: reliquary::network: received
    2024-04-08T11:41:48.726085Z  WARN live_capture: reliquary_archiver::export::fribbels: could not parse trailblazer data command error=Unexpected EOF
    

    Happy to run any special debug builds of the program on my end if it would be helpful for you. Thanks for your work on this!

    opened by gsfernandes81 3
  • Achievement Tracking

    Achievement Tracking

    This is more of a question of possibility than necessarily a suggestion to do given the limited scope of this specific repo - can this method be used to grab a list of the player's achievements? There are few ways that I have found to get the list of achievements done outside of some offshoot OCR methods and straight up manual checks so I figured this would make things a lot simpler if possible.

    opened by Sylencia 2
  • Error executing cargo run on Linux

    Error executing cargo run on Linux

    When I try to execute cargo run on Fedora 40 (Linux) and try to log into the game I get the following error:

    mvdw@fedora:~/Documents/GitHub/reliquary-archiver$ RUST_BACKTRACE=full cargo run
        Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.05s
         Running `target/debug/reliquary-archiver`
    2024-05-18T15:37:56.118228Z  INFO config_map: reliquary_archiver::export::fribbels: initializing database from online sources, this might take a while...
    2024-05-18T15:38:01.859217Z  INFO live_capture: reliquary_archiver: instructions: go to main menu screen and go into train hyperdrive
    2024-05-18T15:38:01.859249Z  INFO live_capture: reliquary_archiver: listening with a timeout of 120 seconds...
    2024-05-18T15:38:32.503517Z  INFO live_capture: reliquary_archiver: detected connection established
    The application panicked (crashed).
    Message:  attempt to add with overflow
    Location: /home/mvdw/.cargo/registry/src/index.crates.io-6f17d22bba15001f/kcp-0.5.3/src/kcp.rs:522
    
      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                                    ⋮ 8 frames hidden ⋮                               
       9: core::panicking::panic::h8d879bb896ec3810
          at /builddir/build/BUILD/rustc-1.78.0-src/library/core/src/panicking.rs:145
      10: kcp::kcp::Kcp<Output>::update_ack::hd8cac7d83d735536
          at /home/mvdw/.cargo/registry/src/index.crates.io-6f17d22bba15001f/kcp-0.5.3/src/kcp.rs:522
           520 │             }
           521 │         }
           522 >         let rto = self.rx_srtt + cmp::max(self.interval, 4 * self.rx_rttval);
           523 │         self.rx_rto = bound(self.rx_minrto, rto, KCP_RTO_MAX);
           524 │     }
      11: kcp::kcp::Kcp<Output>::input::h46d74c41e9d33966
          at /home/mvdw/.cargo/registry/src/index.crates.io-6f17d22bba15001f/kcp-0.5.3/src/kcp.rs:714
           712 │                     let rtt = timediff(self.current, ts);
           713 │                     if rtt >= 0 {
           714 >                         self.update_ack(rtt as u32);
           715 │                     }
           716 │                     self.parse_ack(sn);
      12: reliquary::network::kcp::KcpSniffer::receive_segments::hbb136eb1f190f0f4
          at /home/mvdw/.cargo/git/checkouts/reliquary-273ee92fcf463098/add4b40/src/network/kcp.rs:54
            52 │         let segments = reformat_kcp_segments(segments);
            53 │ 
            54 >         match self.kcp.input(&segments) {
            55 │             Ok(size) => trace!(size, "input successful"),
            56 │             Err(e) => warn!("could not input to kcp: {e}"),
      13: reliquary::network::GameSniffer::receive_kcp_segment::h6599da548ade34c1
          at /home/mvdw/.cargo/git/checkouts/reliquary-273ee92fcf463098/add4b40/src/network/mod.rs:227
           225 │ 
           226 │         if let Some(kcp) = kcp {
           227 >             let commands = kcp
           228 │                 .receive_segments(kcp_seg)
           229 │                 .into_iter()
      14: reliquary::network::GameSniffer::receive_packet::hae108244533b0cb9
          at /home/mvdw/.cargo/git/checkouts/reliquary-273ee92fcf463098/add4b40/src/network/mod.rs:200
           198 │ 
           199 │             ConnectionPacket::SegmentData(direction, kcp_seg) => {
           200 >                 let commands = self.receive_kcp_segment(direction, &kcp_seg);
           201 │                 match commands {
           202 │                     Some(commands) => Some(GamePacket::Commands(commands)),
      15: reliquary_archiver::live_capture::h4582aacf494b221b
          at /home/mvdw/Documents/GitHub/reliquary-archiver/src/main.rs:185
           183 │         match rx.recv_timeout(Duration::from_secs(args.timeout)) {
           184 │             Ok(data) => {
           185 >                 match sniffer.receive_packet(data.to_vec()) {
           186 │                     Some(GamePacket::Connection(c)) => {
           187 │                         match c {
      16: reliquary_archiver::main::hc0f32445e6450814
          at /home/mvdw/Documents/GitHub/reliquary-archiver/src/main.rs:51
            49 │     let export = match args.pcap {
            50 │         Some(_) => file_capture(&args, exporter, sniffer),
            51 >         None => live_capture(&args, exporter, sniffer),
            52 │     };
            53 │ 
      17: core::ops::function::FnOnce::call_once::h1c62e80fda194653
          at /builddir/build/BUILD/rustc-1.78.0-src/library/core/src/ops/function.rs:250
                                    ⋮ 16 frames hidden ⋮                              
    
    Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering.
    Warning: SpanTrace capture is Unsupported.
    Ensure that you've setup a tracing-error ErrorLayer and the semver versions are compatible
    
    opened by MVDW-Java 2
  • unknown key for version

    unknown key for version

    when update to 2.2,it doesn't work

    2024-05-08T03:28:48.567289Z INFO config_map: reliquary_archiver::export::fribbels: initializing database from online sources, this might take a while... 2024-05-08T03:28:57.142035Z INFO live_capture: reliquary_archiver: instructions: go to main menu screen and go into train hyperdrive 2024-05-08T03:28:57.142265Z INFO live_capture: reliquary_archiver: listening with a timeout of 120 seconds... 2024-05-08T03:29:12.053781Z INFO live_capture: reliquary_archiver: detected connection established The application panicked (crashed). Message: unknown key for version Location: C:\Users\Ice.cargo\git\checkouts\reliquary-273ee92fcf463098\ec152c7\src\network\crypto.rs:36

    Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it. Run with RUST_BACKTRACE=full to include source snippets. Warning: SpanTrace capture is Unsupported. Ensure that you've setup a tracing-error ErrorLayer and the semver versions are compatible

    opened by xilou31 2
  • Error in init database

    Error in init database

    The application panicked (crashed).
    Message:  called `Result::unwrap()` on an `Err` value: Transport(Transport { kind: ConnectionFailed, message: Some("tls connection init failed"), url: Some(Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("raw.githubusercontent.com")), port: None, path: "/Dimbreath/StarRailData/master/ExcelOutput/AvatarConfig.json", query: None, fragment: None }), source: Some(Custom { kind: InvalidData, error: InvalidCertificate(UnknownIssuer) }) })
    Location: src\export\fribbels.rs:300
    
    Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
    Run with RUST_BACKTRACE=full to include source snippets.
    Warning: SpanTrace capture is Unsupported.
    Ensure that you've setup a tracing-error ErrorLayer and the semver versions are compatible
    

    It seems be a network problem. Can you build the mirror of links?

    opened by 12345-mcpython 2
  • После использования на главном меню при выходе из игры или аккаунта испанский язык вместо русского

    После использования на главном меню при выходе из игры или аккаунта испанский язык вместо русского

    На фото видно, что включен русский язык в настройках(подписи кнопок русские). проверку ресурсов делал, ничего не нашло. Еще когда запускаешь игру, сверху "Добро пожаловать "почта@mail.ru"" стало тоже на испанском. В других местах такого не обнаружено. Не могу на все 100% утверждать что это из-за сканера, но такое я заметил только сегодня image image

    opened by Makishimu120 2
  • Application crashes with message

    Application crashes with message "attempt to add with overflow"

    App crashes the moment when I click to start in game.

    Log:

    2024-07-06T06:29:10.825862Z  INFO config_map: reliquary_archiver::export::fribbels: initializing database from online sources, this might take a while...
    2024-07-06T06:30:06.218077Z  INFO live_capture: reliquary_archiver: instructions: go to main menu screen and go to the "Click to Start" screen
    2024-07-06T06:30:06.218172Z  INFO live_capture: reliquary_archiver: listening with a timeout of 120 seconds...
    2024-07-06T06:30:19.597786Z  INFO live_capture: reliquary_archiver: detected connection established
    The application panicked (crashed).
    Message:  attempt to add with overflow
    Location: /home/pc/.cargo/registry/src/index.crates.io-6f17d22bba15001f/kcp-0.5.3/src/kcp.rs:522
    Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
    Run with RUST_BACKTRACE=full to include source snippets.
    Warning: SpanTrace capture is Unsupported.
    Ensure that you've setup a tracing-error ErrorLayer and the semver versions are compatible
    

    Background:

    • Non windows system
    • Built from source using cargo build. Nothing added, nothing tweaked. I'm not familiar with rust
    • Binary directly run with sudo target/debug/reliquary-archiver. Setting CAP_NET_RAW was not enough as I was always getting Operation not permitted error

    Verbose version right before the crash:

    2024-07-06T06:38:16.141867Z TRACE capture_device: reliquary_archiver: captured packet
    2024-07-06T06:38:16.142099Z DEBUG live_capture: reliquary_archiver::export::fribbels: detected uid
    2024-07-06T06:38:16.142250Z TRACE live_capture:receive_packet{len=70}:parse_connection_packet:parse_udp{len=70}: reliquary::network::connection: complete
    2024-07-06T06:38:16.142391Z TRACE live_capture:receive_packet{len=70}:receive_segments{conv_id=1242265 len=28}: reliquary::network::kcp: message data: 99f412004c0a58265200ff0004c8c386000000000100000000000000
    2024-07-06T06:38:16.142478Z TRACE live_capture:receive_packet{len=70}:receive_segments{conv_id=1242265 len=28}:split: reliquary::network::kcp: before split: 99f412004c0a58265200ff0004c8c386000000000100000000000000
    2024-07-06T06:38:16.142547Z TRACE live_capture:receive_packet{len=70}:receive_segments{conv_id=1242265 len=28}:split: reliquary::network::kcp:  after split: 99f412005200ff0004c8c386000000000100000000000000
    The application panicked (crashed).
    Message:  attempt to add with overflow
    Location: /home/pc/.cargo/registry/src/index.crates.io-6f17d22bba15001f/kcp-0.5.3/src/kcp.rs:522
    
    opened by dreadfulman 1
  • Win11: Executable is not a valid application for this OS Platform

    Win11: Executable is not a valid application for this OS Platform

    I'm on Windows 11. Running the executable by either clicking on it or running it on the PowerShell command line fails with the error "The specified executable is not a valid application for this OS platform." Any idea why this is happening?

    image

    opened by suntree123 2
  • Proxy support for database

    Proxy support for database

    2024-06-21T14:31:22.972862Z  INFO config_map: reliquary_archiver::export::fribbels: initializing database from online sources, this might take a while...
    The application panicked (crashed).
    Message:  called `Result::unwrap()` on an `Err` value: Transport(Transport { kind: Dns, message: Some("resolve dns name 'raw.githubusercontent.com:443'"), url: Some(Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("raw.githubusercontent.com")), port: None, path: "/Dimbreath/StarRailData/master/ExcelOutput/AvatarConfig.json", query: None, fragment: None }), source: Some(Os { code: 11004, kind: Uncategorized, message: "请求的名称有效,但是找不到请求的类型的数据。" }) })
    Location: src\export\fribbels.rs:300
    
    Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
    Run with RUST_BACKTRACE=full to include source snippets.
    Warning: SpanTrace capture is Unsupported.
    Ensure that you've setup a tracing-error ErrorLayer and the semver versions are compatible
    

    This issue looks like a duplicate of #13, lol.

    I am experiencing difficulty connecting to raw.githubusercontent.com from my home network. Despite setting the http_proxy and all_proxy environment variables, the connection does not work, and I cannot see any log entries from my proxy.

    Based on my research, ureq should automatically support proxy environments, but this doesn't seem to be the case here.

    As a workaround, I replaced the link with a mirror (built using actions in a private fork), and it worked.

    Given that a local database is not the preferred solution (#11), is there any possibility of implementing proxy support for database fetching?

    Thank you for developing this tool!

    opened by Skimige 2
  • Supporting The Other Game

    Supporting The Other Game

    I just found this today and it's such a breeze to work with, especially compared to The Other Game by the same developers where all the available scanners rely on OCR (of screenshots or video).

    Without looking into the code (which I don't have the time for for the near future), I was wondering how much effort it would be to adapt the same method also for this other game? Especially on Linux, the current options there are a bit limited (and basically require a controller for reasonable performance, but controllers on Linux are also … not the easiest to work with, outside of Steam anyway).

    opened by FichteFoll 2
  • Offline Database

    Offline Database

    Making a draft pull request to begin discussing implementation details for this feature

    I've made some changes to get started, but nothing is set in stone and can be changed as need be.


    Overview

    Adds support for specifying a download directory for loading & saving necessary database config files.

    Details

    • There are two new command-line arguments:
      • --no-save = do not save database locally
      • --database <PATH> = where to save and/or load the local database to/from. default is "database"
    • File system errors when trying to load from the local database will fallback to fetching from online sources
    • File system errors when trying to save the local database will silently fail, but the rest of the program should still run

    Essentially, the --database arg tells it where it should be looking for the local database and the --no-save arg explicitly tells it not to save, otherwise the default behavior is to always save.

    Notes

    I'm storing the SHA hash of the latest commit as versioning information for the local database files. So, when checking if it needs to update its local database, it's doing a simple comparison on the latest commit's hash and what we have saved to see if they are the same; if they aren't then we assume our database is behind and will re-download those files.

    Important: reliquary repo will also need to be updated with Serialize derivations on most types to allow writing those types to file using serde. I can make a separate PR for that.

    opened by Kenjugs 2
Releases(v0.1.7)
Owner
IceDynamix
jack of all trades
IceDynamix
run commands when a file is modified or upon receiving TCP/UDP packets

Witness Command line utility which lets you execute arbitrary commands in response to: File changes UDP packets and TCP connections Installation Using

Christofer Nolander 3 May 23, 2022
Export validator metrics to Prometheus

Export validator metrics to Prometheus

null 3 Apr 8, 2022
ARYA Network is a polkadot/substrate based chain for Non-fungible Token platform on which we can own sell and buy the NFT's on polkadot network.

ARYA Network ARYA Network is a polkadot/substrate based chain for Non-fungible Token platform on which we can own sell and buy the NFT's on polkadot n

Pankaj Chaudhary 6 Dec 20, 2022
A quick create wizard to create and modify opinionated kustomize deployments.

kqc ?? ☸️ A quick create wizard to create and modify opinionated kustomize deployments. This tool should help to quickly create and build up kustomize

Daniel Jankowski 8 May 20, 2023
A CLI application that implements multi-key-turn security via Shamir's Secret Sharing.

agree agree is a CLI tool for easily applying multi-key-turn security via Shamirs Secret Sharing. Project state agree is unstable. Version semantics:

Alexander Weber 19 Aug 29, 2023
Cross-chain bridge message delivery network. We are hiring, [email protected]

Introduction Implementation of a https://darwinia.network node in Rust based on the Substrate framework. This repository contains runtimes for the Dar

Darwinia Network 225 Nov 8, 2022
The Zenotta Network Protocol (ZNP), the network that supports the Zenotta blockchain

Zenotta Network Protocol A repo for the development of the Zenotta Network Protocol (ZNP). We will regularly be updating links and easter eggs inside

Zenotta AG 10 Apr 2, 2023
dWallet Network, a composable modular signature network is the home of dWallets

Welcome to dWallet Network dWallet Network, a composable modular signature network is the home of dWallets. A dWallet is a noncollusive and massively

dWallet Labs 8 Feb 26, 2024
A template to create Rust-based Pure Data externals

Generate a Rust-based external for Pure Data This is a cargo generate template to create a Pure Data external written entirely in Rust. It uses pureda

Mads Kjeldgaard 6 May 1, 2024
xx network Substrate based blockchain node

xx network Substrate based blockchain node Rust Setup First, complete the basic Rust setup instructions. MacOS users: setup to compile for Linux Befor

xx network 11 Dec 20, 2022
A Rust-based CustomVM for the Avalanche blockchain network

A rust-based Custom VM for Avalanche Subnets Curious about how to run Rust-based smart contracts, or just custom VMs for Avalanche blockchain? You're

Archis 11 Dec 29, 2022
Selendra is a multichains interoperable nominated Proof-of-Stake network for developing and running Substrate-based and EVM compatible blockchain applications.

Selendra An interoperable nominated Proof-of-Stake network for developing and running Substrate-based and EVM compatible blockchain applications. Read

Selendra 16 Nov 29, 2022
Zei is a library that provide tools to create and verify public transaction with confidential data.

#Zei: Findora's Cryptographic Library Zei is a library that provide tools to create and verify public transaction with confidential data. Support: Bas

Findora Foundation 0 Oct 23, 2022
Create your personal token with rust smart contracts

Solana Rust Token ?? This application written Rust using Anchor ⚓

Ritesh 6 Nov 22, 2022
MevWallet is a smart contract wallet that allows the user to capture MEV from Searchers, or create MEV on purpose.

MevWallet MevWallet is a smart contract wallet that allows the user to capture MEV from Searchers, or create MEV on purpose. This repo contains the so

Blunt Instruments 94 Jan 26, 2023
🥕 Create a multisig with taproot and spend from it using BDK 🥕

Multisig & carrots This repository contains all the code to build a taproot multisig with your friends, and to spend from it. It's been used first to

Daniela Brozzoni 15 Jan 31, 2023
Starknet Stack let's you easily create new Cairo Starknet chains with their own sequencers, provers and verifiers

Starknet Stack flowchart LR A("Client") ==>|"Starknet Transactions"| subGraph0["Sequencer"] subGraph0 -.->|"Blocks with txs"| 300319["Watcher prover

Lambdaclass 7 Jul 11, 2023
Create Bitcoin double-spend discouraging bonds on Liquid.

doubletake A tool for creating Bitcoin double-spend punishment bonds on Liquid. WARNING: Don't use this tool for real use cases yet. There are still a

Steven Roose 5 Aug 12, 2023
Create a Stark prover & verifier from zero

stark-from-zero Create a Stark prover and verifier from zero, with Rust. Hopefully without external libraries. The point is to create a minimal versio

Lauri Peltonen 7 May 7, 2024