Tienes un string que deseas insertar en un array. Para esto, necesitas recorrer los caracteres del string 1x1 e insertarlos en el array.
En el ejemplo, j va desde 1 (el primer char del string) hasta el largo (len) del mismo. Ahora, en TU ejemplo pusiste que deseabas comenzar a insertar elementos desde la posicion 1846824. Si tengo un contador (j) que va desde 1 hasta n, entonces si quiero contar desde 1846824 hasta 1846824 + n, lo que hago es: 1846823 + j (j se incrementa en 1 en cada vuelta del for).
Se entiende?
Una cosa que deberas tener en cuenta es el tamaño del array. Verifica que tengas espacio suficiente...
1) Busca la direccion de la API en el contexto del proceso. 2) Sobreescribe los primeros bytes, para hacer un salto a la nueva direccion. En mi caso no usaria un salto (porque son relativos a la posicion donde estan), sino que usaria PUSH ADDR + RET.
Por supuesto, para escribir necesita cambiar los permisos de la memoria.