Code Monkey home page Code Monkey logo

reclass.net's People

Contributors

descear avatar drp3pp3r avatar gh-rake avatar hinaria avatar jesterret avatar kn4ck3r avatar ko1n avatar morsisko avatar namazso avatar pinwhell avatar praydog avatar rob-- avatar stevemk14ebr avatar timboy67678 avatar titto avatar zarickan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

reclass.net's Issues

Add a Boolean type

Not an issue, rather a suggestion.

It would be nice to have a bool type. Yeah I know we could just use uint8_t but still, that's not the same.

Thanks

Cant open the game ROS.EXE (Rules of survival)

First hello, and i have to tell you that i love this project

2nt why i cant open this process, i didnt compile right ?

i mean i cant compile the project "NativeCore.Unix"
I mean i have problems when i try to compile it
but i dont care its Unix i use windogayos(jk windows)

i really wanna find some cool pointers on this reclassers Becuase this reclasser is so much sexy and good and made in germny XDD

Thank you for the Software, and pleaseee Help i cant find the game :9

How to do Pointer Preview for each row

Hello KN4CK3R, First of all I want to express my gratitude for this software. I liked the UI design and good code quality.

And the question. I want modify code for myself than Pointer Preview popup work for each row. I need this this, because i use read/write kernel driver, and i dont know where exactly is pointer.

I try to find this in MemoryPreviewPopUp & HotSpot classes. Tell me please, where can I find this code verification for pointer. Thx!

just a feedback :)

Hello !
i am very happy to see a guy like u/or guys idk..

i saw this project few mounths ago and i always see updates there
thanks for the project !

Not building under Visual Studio 2017

Hi there,

I apologize in advance if this has already been answered before, or if it is just a stupid question.
I have tried to build from source, but VS2017 complains about SQLite.
How do I install this dependency? I think this is all that's missing.

Thanks,
Mockba the Borg,

Out of memory page reading? (low prioriry)

Very rare bug, not sure it can be/should be fixed.
I got a bug with reading string from memory, reading more bytes after string cause to fail reading at all.
Just check my video: https://dl.dropboxusercontent.com/s/zrkpuvh4x6njohz/2018-05-08_05-44-40.mp4
I think the problem that reclass trying to read memory that goes out of memory page region and can't be read it at all.

I got this problem in my program, then I find out that this problem present in reclass too.

Pointer Array of Class Pointer

Hi,

unfortunately it seems that the Array of Pointer Node does only support Class Instances. I need an Array of Pointer where every Pointer points to another Pointer of a specific class.

I know that you (@KN4CK3R ) know the Unreal Engine so you are aware of the TArray struct.
Imagine the ULevel::Actors member which is a TArray<AActor*>

I wanted to create a class in ReClass that is able to visualize exactly this. The first member in the TArray is a Pointer to the Pointer Table. However I am only able to put another class which is already defined in the Array of Pointers instead of a here required Class Pointer of AActor.

Do you get what I mean?

Is it possible to implement that?

Thanks in advance

Get address of BaseNode

I want to extend the TypeInfo plugin for FrostBite games with the members of each class. For that I need to know the "base address" of the current class.
So for example when I want to read the membername of address AB37C8B8 the method INodeInfoReader.ReadNodeInfo gets called with the BaseNode of this item and the IntPtr with value AB37CAF8. From these values there is no way (atleast I haven't found one) to get the needed base address AB37C870.
See:
image

From this address I could check if it's a TypeInfo address/class and with the offset inside the BaseNode I can get the exact member.
So basically, I'm missing a way to get the current address of a BaseNode. Since I can get the base address of a class by subtracting from the address of a BaseNode the offset of the BaseNode.

@KN4CK3R Is there any way you can add the address to a BaseNode?

I hope everyone understood what I want, I had hard times writing this up :'D

Arrays of primitive datatypes?

Hi, how to create arrays for primitive datatypes like int32 for example or float or whatever?
I mean I could just put two int32 in row but they must have different names then... or I would have to create a new class with two int32 members which is also crappy.

[Request] VEH Debugger

The debugger crashes 90% of steam games because the steamstub hidings threads. Would it be possible to add VEH debugger like CE?

[Request] Function Return

Is there a way to add a function return type? Like when defining a Virtual Table you get a list of functions. On code generator for C++ it all comes out to virtual void FunctionN();. This does not compile, because it is looking for a definition.

For building a class it would be needing to define it as virtual void FunctionN() { };, and for a int return type would be virtual int FunctionN() { return -1; }; (-1 just for the sake as placeholder).

The same goes into parameters: users should be able to type in the parameters (even for classes that does not exist in ReClass) so on code generator does not clear all our changes after the C&P to our SDK (think on 100+ classes and they are not always on the same order, so to re-add manually a bunch of virtual methods is kind of damned).

Thanks for the attention.

Invalid unicode/hexadecimal values during save.

Recently had an issue where a unicode char accidentally ended up in the title of a class pointer. When attempting to save the program would error: "System.ArgumentException: '�', hexadecimal value 0x1F, is an invalid character."(http://pastebin.com/ALdGLN1m)

Reclass would remain open but with just knowing there was a invalid char somewhere and not where made it difficult to find. (I didn't realize at the time I could unzip the attempted save and see what class it cut off)

Reclass could still generate class files.

Tried filtering out unicode chars during the AddText function, which worked but the char remains in the stream that writes the XML. Leading me to let you know about the issue.

multibyte conversion to unicode leads to crash

i've tried to attach reclass to an certain game and it crashed, then i debugged and found that it crashes here:

const auto temp = converter{}.from_bytes(src + srcOffset); at ReclassNET_plugin.hpp line 285

i've only able to fix the problem using the MultiByteToWideChar API with CP_ACP option.

here's my fix for now:

unsigned long minSize = ::MultiByteToWideChar(CP_ACP, 0, src, -1, NULL, 0);

::MultiByteToWideChar(CP_ACP, 0, src, -1, ( LPWSTR )dst, minSize);

Changing types to bigger sized types move defined offsets

I am not sure if this is intended or not(and i really hope it isn't) but when you change the type of an address to something bigger than what it was before, for example hex32 -> Vector3 it pushes all the already defined/named offset positions by the size leftover effectively making them all point to the wrong offsets which makes using this kind of cumbersome at times because i have to fix all my offsets over and over again.

Build on linux

Hello

I try build sln on linux in Rider
And got error:
_2017-08-07_18-15-15

_2017-08-07_18-16-29

Cleaner way of selecting custom node types

Hi, probably many of users who was working on projects with more than 40 classes noticed how annoying is the current selection of custom node types (for example choosing to which class should the node point). At the moment my fullhd screen can handle 45 classes in the tooltip at a time. Scrolling the tooltip almost every time when i want to choose new class is extremally uncomfortable.

Here comes my idea and proof of concept:
2018-01-13_20-32-20

So what is basically happening:

  1. After user press the "ChangeType" the window with list of all project classes appears
  2. User can type name or part of class name which he want to select, it will be filtered in the listbox
  3. User can select the type by double click the name, or selecting the name and pressing "Select" button
  4. User can deny changes pressing "X" or "Close"

Adventages:

  1. Handy
  2. More transparent
  3. Really helpful when you have large amount of classes

Disadventages:

  1. Using new window to selecting classes may be irritating when working on small amount of classes

Losing Exe Memory Access

i'm trying to attach to Reclass.Net to a game Called Black Desert i can successfully attach to the game right away after running the process but in 10 secs i lose the ability to scan the memory / Check the modules with 0 Error Message.. i was able to attach the Normal Reclass without any problem as you can see in the attached image that ReClass.NET still attached to the process but i can't view it's modules or run memory scan also tried with the pipe plugin but it's crashing the exe after attaching ( tried attaching to other exe files but crashing also ) and wasn't able to use Handle Hijacking plugin can you tell me exactly how to use it ?

image

StackOverflow with recursive identical members.

At the moment ReClass.NET (and every ReClass port I know) crashes if you try to build a class like this:

class X
{
   X instance;
}

It will overflow while calculating the memory size of this class. A simple check if the target class of the instance is the same as the instance prevents this error. But if you do something like this:

class X
{
   Y instance;
}
class Y
{
   X instance;
}

Then the check will pass but the overflow will occur again.
We will need a method to check parents and (!) members for conflicts. Because this is only a theoretical problem because you can't find such classes in the wild, I will just leave this issue here for the future.

.NET Core

Todo: Move to .NET Core 3.0 with WinForms support.
This will make Span available for the memory scanner.

i got this issue at ReClass.NET v1.1

===================================

Method not found: 'System.__Canon System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer(IntPtr)'. (ReClass.NET)


For help, click: https://github.com/KN4CK3R/ReClass.NET/issues


Program Location:

at ReClassNET.Core.NativeCoreWrapper.GetFunctionDelegate[TDelegate](IntPtr handle, String function)
at ReClassNET.Core.NativeCoreWrapper..ctor(IntPtr handle)
at ReClassNET.Core.InternalCoreFunctions..ctor(IntPtr handle)
at ReClassNET.Core.CoreFunctionsManager..ctor()
at ReClassNET.Program.Main()

Memory class of nested nodes

Currently the NodeDissector can only be used with the "root" class because the MemoryClass only holds the memory of that class. The memory class of nested objects gets created on the fly while drawing them. Maybe extract this process into a different method in order to access it from outside the drawing logic.

Doesn't run on linux (Kubuntu 18.10), but compiles without any issues

Unhandled Exception: System.IO.FileNotFoundException: Failed to load native core functions! Couldnt find at location /home/shiruba/ReClass.NET/ReClass.NET/bin/Debug/x64/NativeCore.so

Compiled and then moved the NativeCore shared object to the directory of the executable and ran it with mono (tried with root as well).

Distro: Kubuntu 18.10
Mono version: 5.18.0.225

"Go to class..." feature

Hi,
I'm comming with new idea: Since there is form named "ClassSelectionForm" it can be easily used to implement "Go to class..." feature, it may be really handy when you are dealing with big projects. PoC:
2018-03-28_19-23-39

I've coded it already, if you find it useful I can push pull request

Lock nodes offset

Hi,
Thanks again for a program.

I just wanted to ask if it's possible to add LOCK node feature. When you lock node it's offset can't be broken after deleting/inserting bytes before/under it.
Sometimes we don't need to define types in whole structure, just some nodes at start, middle and end of structure.

Also this feature gives us other new awesome feature - we can delete some byte range we don't need (like "hide" in old reclass).

I know, this can be not easy task, just wanted to ask if this is possible.
Thanks you.

fail to start on linux

Hello :)

I'm having an issue with ReClass on Linux:
When I try to start it I get :

$ sudo mono ReClass.NET.exe 
[sudo] password for x: 
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
System.ArgumentOutOfRangeException: '0' is not a valid value for 'Value'. 'Value' should be between 'Minimum' and 'Maximum'
Parameter name: Value
  at System.Windows.Forms.ScrollBar.set_Value (System.Int32 value) [0x00027] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.ScrollBar.set_Value(int)
  at System.Windows.Forms.ScrollableControl.Recalculate (System.Boolean doLayout) [0x00177] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.ScrollableControl.AdjustFormScrollbars (System.Boolean displayScrollbars) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.ContainerControl.AdjustFormScrollbars (System.Boolean displayScrollbars) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.ScrollableControl.OnLayout (System.Windows.Forms.LayoutEventArgs levent) [0x0000e] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.ContainerControl.OnLayout (System.Windows.Forms.LayoutEventArgs e) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.Control.PerformLayout (System.ComponentModel.IComponent affectedComponent, System.String affectedProperty) [0x0004c] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.Control.PerformLayout (System.Windows.Forms.Control affectedControl, System.String affectedProperty) [0x00019] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control.PerformLayout(System.Windows.Forms.Control,string)
  at System.Windows.Forms.Control.set_Visible (System.Boolean value) [0x00018] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control.set_Visible(bool)
  at System.Windows.Forms.ScrollProperties.set_Visible (System.Boolean value) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at ReClassNET.UI.MemoryViewControl.OnLoad (System.EventArgs e) [0x0003e] in <6e871db55e124b25b9ed8171cafecdf7>:0 
  at System.Windows.Forms.UserControl.OnCreateControl () [0x00006] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.Control.CreateControl () [0x00082] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.Control.WmShowWindow (System.Windows.Forms.Message& m) [0x00036] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00214] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.ScrollableControl.WndProc (System.Windows.Forms.Message& m) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.ContainerControl.WndProc (System.Windows.Forms.Message& m) [0x00029] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.UserControl.WndProc (System.Windows.Forms.Message& m) [0x00027] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at ReClassNET.UI.ScrollableCustomControl.WndProc (System.Windows.Forms.Message& msg) [0x0005f] in <6e871db55e124b25b9ed8171cafecdf7>:0 
  at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x0000b] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.NativeWindow.WndProc (System.IntPtr hWnd, System.Windows.Forms.Msg msg, System.IntPtr wParam, System.IntPtr lParam) [0x00085] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
System.ArgumentOutOfRangeException: '0' is not a valid value for 'Value'. 'Value' should be between 'Minimum' and 'Maximum'
Parameter name: Value
  at System.Windows.Forms.ScrollBar.set_Value (System.Int32 value) [0x00027] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.ScrollBar.set_Value(int)
  at System.Windows.Forms.ScrollableControl.Recalculate (System.Boolean doLayout) [0x00177] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.ScrollableControl.AdjustFormScrollbars (System.Boolean displayScrollbars) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.ContainerControl.AdjustFormScrollbars (System.Boolean displayScrollbars) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.ScrollableControl.OnLayout (System.Windows.Forms.LayoutEventArgs levent) [0x0000e] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.ContainerControl.OnLayout (System.Windows.Forms.LayoutEventArgs e) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.Control.PerformLayout (System.ComponentModel.IComponent affectedComponent, System.String affectedProperty) [0x0004c] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.Control.PerformLayout (System.Windows.Forms.Control affectedControl, System.String affectedProperty) [0x00019] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.ScrollableControl.OnVisibleChanged (System.EventArgs e) [0x0000e] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.Control.OnParentVisibleChanged (System.EventArgs e) [0x00008] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x00053] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.ScrollableControl.OnVisibleChanged (System.EventArgs e) [0x0001a] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.Control.OnParentVisibleChanged (System.EventArgs e) [0x00008] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x00053] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.ScrollableControl.OnVisibleChanged (System.EventArgs e) [0x0001a] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.Control.OnParentVisibleChanged (System.EventArgs e) [0x00008] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x00053] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.ScrollableControl.OnVisibleChanged (System.EventArgs e) [0x0001a] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.Form.OnVisibleChanged (System.EventArgs e) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.Control.WmShowWindow (System.Windows.Forms.Message& m) [0x0010e] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00214] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.ScrollableControl.WndProc (System.Windows.Forms.Message& m) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.ContainerControl.WndProc (System.Windows.Forms.Message& m) [0x00029] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.Form.WndProc (System.Windows.Forms.Message& m) [0x00166] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x0000b] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 
  at System.Windows.Forms.NativeWindow.WndProc (System.IntPtr hWnd, System.Windows.Forms.Msg msg, System.IntPtr wParam, System.IntPtr lParam) [0x00085] in <7bab0583cf6f48a1abb93c02b7fcb973>:0 

Can you help me out please ?

Class fails to generate when adding function node

Thanks for adding the function node type first off. I've found an issue however, picture Is worth a thousand words:

Good:
http://i.imgur.com/C5Jz0ql.png

Bad:
http://i.imgur.com/EWXBtYS.png

As you can see when adding the new function node type the class fails to generate. It would also be nice if the function node type had an option to generate a method body (just a text box) and had reserved keywords to insert the address of a class into that method body, example:

SomeOtherClass* AFunction()
{ <- Everything In brackets is inside a textbox
SomeOtherClass* pOtherClass = * * (SomeOtherClass*)%SomeOtherClassAddress%
return pOtherClass;
}

in this case %SomeOtherClassAddress% would be replaced by reclass with the address of that class. This would make it easy to write singletons that are updated automatically, as it is now you have to generate the class and write you own singletons which is just a waste of time.

Add pointer to native types node

Add a new node type which represents a pointer to native types (int*, float*, Matrix*, ...) not just classes.

Theorectical Problems: ArrayNode, Serialization, Pointer to nothing (void*) ?

Linux build environment

What is the recommended build environment for compiling this on linux? A small guide would be appreciated

Plugin Problem

I lose the ability to see the processes after i used the plugin. Prior to that, i could see all the processes to attach. I only tested on two plugins, Handle Abuser, SimpluePluginNative. It happened to both of them.
default
default

NativeCore.dll ?

I'm not sure what's going on but upon attempting to open the app this shows up

capture

[REQUEST] Prepend Headers

Is there a way to prepend (and append) some text inside the code generator?
Use case: #pragma once or include guards; including extra Headers and such.

I see a possible way after the Created with ReClass.NET 1.1 by KN4CK3R comment, but it would be good to be customizable and saved per project.

Broken form designer?

I'm no expert on C# and .NET so maybe I've missed something completely obvious but when I try to open up the forms in this project in design mode (MainForm.cs for example) I'm greeted by this lovely screen:

image

This happens for every form I've tried. Any idea why this is happening?

I'm using the latest Visual Studio 2017 and I have the C# for desktop applications packages installed. The project compiles fine.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.