Skip to content

Instantly share code, notes, and snippets.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -I"/Users/jeedee/Downloads/valodzka-time2-28cfb5ff5e3dd2ebd9d1d234a3a66bc5b7e60e67/lib" "/Library/Ruby/Gems/1.8/gems/rake-0.8.4/lib/rake/rake_test_loader.rb" "test/runner.rb"
Loaded suite [test_mri_date_strptime.rb, .]
Started
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE.........................................EF.
Finished in 0.203267 seconds.
1) Error:
test_atime(TestFileExhaustive):
NoMethodError: undefined method `mktmpdir' for Dir:Class
/Users/jeedee/Downloads/valodzka-time2-28cfb5ff5e3dd2ebd9d1d234a3a66bc5b7e60e67/test/test_mri_file_exhaustive.rb:7:in `setup'
javax.servlet.ServletContext log: unable to create shared application instance
org.jruby.rack.RackInitializationException: library `digest' could not be loaded: java.lang.InternalError: cannot create instance of org.bouncycastle.jce.provider.symmetric.AESMappings : java.security.AccessControlException: access denied (java.security.SecurityPermission putProviderProperty.BC)
from file:/base/data/home/apps/25th-tabloids/1.340961767906402701/WEB-INF/lib/gems.jar!/bundler_gems/jruby/1.8/gems/sinatra-1.0/lib/sinatra/tilt.rb:1
from file:/base/data/home/apps/25th-tabloids/1.340961767906402701/WEB-INF/lib/gems.jar!/bundler_gems/jruby/1.8/gems/sinatra-1.0/lib/sinatra/tilt.rb:18:in `require'
from file:/base/data/home/apps/25th-tabloids/1.340961767906402701/WEB-INF/lib/gems.jar!/bundler_gems/jruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:18
from file:/base/data/home/apps/25th-tabloids/1.340961767906402701/WEB-INF/lib/gems.jar!/bundler_gems/jruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:4:in `require'
from file:/base
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "clsPacket"
Attribute VB_GlobalNameSpace = False
Private Function XORcrypt_1(Packet As String) As String
Dim encKey As String
Dim value1, value2, Position As Integer
Dim temp As String
encKey = "NexonInc."
temp = ""
For x = 1 To Len(Packet)
value1 = Asc(Mid$(Packet, x, 1))
Private Function Decrypt_Message(message As String, Increment As Integer) As String
Dim tPacket As String
tPacket = XORcrypt_1(message)
tPacket = XORcrypt_2(tPacket, Increment)
tPacket = XORcrypt_3(tPacket, Increment)
Decrypt_Message = tPacket
Assume our encryption key is a array of 9 bytes containing the ASCII values "NexonInc." (Default Dark Ages Encryption Key)
key = {4E 65 78 6F 6E 49 6E 63 2E}
/* This function encrypts or decrypts our packets. Sequence is the packet SEQUENCE number, array is the pointer to the packet DATA, start is WHERE in the array to start and count is HOW MANY bytes to encrypt or decrypt. */
int EncryptDecrypt(byte sequence, byte* array, int start, int count)
{
for(int i = 0; i < count; i++)
{
// XOR by Key, Sequence, and Iteration
Running “serv_simple2.rb”…
ruby 1.8.7 (2009-06-08 patchlevel 173) [universal-darwin10.0]
Theme:
"0 >> DECRYPTED:T\264\tˌ\030\2525�X\177\021u\273Z\037p6"
"1 >> DECRYPTED:T\245\030ڝ\b\273$�Y\177\021u\273Z\016q7"
"2 >> DECRYPTED:T\226+�8\210\027�X_\021u\231x=r4"
"3 >> DECRYPTED:T\207:�(��XOu�i/p6"
"4 >> DECRYPTED:T�M��X�q�X?\021u\377\036_p6"
"5 >> DECRYPTED:T�\��H\377`\235X/\021u�Op6"
Running “serv_simple2.rb”…
ruby 1.8.7 (2009-06-08 patchlevel 173) [universal-darwin10.0]
Theme:
"0 >> DECRYPTED:T\264\tˌ\030\2525�X\177\021u\273Z\037p"
"1 >> DECRYPTED:T\245\030ڝ\b\273$�Y\177\021u\273Z\016q"
"2 >> DECRYPTED:T\226+�8\210\027�X_\021u\231x=r"
"3 >> DECRYPTED:T\207:�(��XOu�i/p"
"4 >> DECRYPTED:T�M��X�q�X?\021u\377\036_p"
"5 >> DECRYPTED:T�\��H\377`\235X/\021u�Op"
Nexus packet decryptor/encryptor function by VIPERZOO.
(new version using 32bit xoring for faster operation)
IMPORTANT IMPORTANT! - If you are using dynamically generated buffers to hold your packet data for encryption/unencryption, the size of the buffer MUST be AT LEAST the smallest multiple of 4 above the size of your packet plus 1. For example, say you have a packet that is in total 25 bytes large (that is including the AA and size header), you must put it in a buffer that is a MINIMUM of 29 bytes large (28 is smallest multiple of 4 over 25, add 1 = 29) to avoid buffer access page faults. Also, remember the true size of the packet (or just check it from the header) when working with the data after so you don't pull any extra garbage data from having to pad the buffer with extra bytes.
Included is the DLL and the source code for the nexus packet decryption/encryption routine.
Usage of it is very simple, include the library file in your project and set up a definition of the "crypt_packet" function,
KEY = ['4E', '65', '78', '6F', '6E', '49', '6E', '63', '2E']
def self.decrypt(packet, increment)
0.upto(packet.length-1) do |i|
packet[i] = (packet[i] ^ (KEY[i % 9].hex))
packet[i] = (packet[i] ^ (i/9) )
packet[i] = (packet[i] ^ increment)
end
#todo optimize conversion
return packet.map {|x| x.to_s(16).hex.chr}.join