Skip to content

Modify uniforms that are both present, and rendered by OpenGL ES (usually to make 'chams').

License

Notifications You must be signed in to change notification settings

SlyrithDevelopment/Android-OpenGL-ES-Chams

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Android OpenGL ES Chams

In order to use this, the application needs to be using OpenGL ES for graphics rendering, otherwise it will not work. I will also be working on a project similar to this one, but it will provide support for applications that use Vulkan to render. I've included descriptive comments within the main header to provide easy insight on the code. In the example, I used ARMPatch as my hooking framework.

Forward Assault has been used as the target.

Features

  • Dump shaders to your devices /Downloads/ directory (which can be easily changed), or view shader names directly through a log. Both features use glGetUniformLocation.
  • Get the location of a uniform from the current program ID and uniform name, instead of having to rely on the count to modify a specific uniform.
  • Render primitives (triangles, lines, etc) using glDrawElements.

Implementation

  1. You will need to include the GLESv2 library into your project (which we get directly from the Android NDK). Depending on what you're using to build the application, the process will be a little bit different.

CMake (CMakeLists.txt):

find_library( # Sets the name of the path variable.

        GLESV2_LIB

        # Specifies the name of the NDK library that

        # you want CMake to locate.

        GLESv2)

target_link_libraries( # Specifies the target library.

        ${GLESV2_LIB}) 

NDK Build (Android.mk):

LOCAL_LDLIBS := -lGLESv2
  1. You will also need to include the gl2 header (provided by the NDK) somewhere in your project. I've included it in my native-lib.cpp as seen here.
#include <GLES2/gl2.h>
  1. Call isChams somewhere after you have included the provided chams header - such as in your main thread.
isChams();

Examples

I've included many examples of the limitless 'types' of chams that you can do. These examples can be found in the main header.

  • Invisible Chams image
  • Black Flat Chams image
  • Wireframe Chams image
  • Visibility Check Chams image
  • Base-Colour Chams image

About

Modify uniforms that are both present, and rendered by OpenGL ES (usually to make 'chams').

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages