Jump to content
Tuts 4 You

Crackme


high6

Recommended Posts

My first crack me and my "first" C++ app(I have made dlls before but not exe).

http://www.mattsbox.co.uk/high6/Files/crackme1.rar

crackme1.rar

Have fun :D .

If you think you have it check the hint first.

Hint:

The messagebox is a fake

:D .(the correct password doesn't have a messagebox popup)

Note: Not packed.

Hint2:

There are over 100 jumps and over 200 calls to assemble the password.

Edited by high6
Attached crackme to post...
Link to comment
High, please attach your crackme's to your topic/post... :)

Ted.

Ya sorry I read the rule after posting and you can't add in an edit.

Actually I don't think I can attach...

Edited by high6
Link to comment

Funny crackme :)

Quite easy, you can actually see what happens without debugging a lot...

Nice idea with the ****load of calls but it's really easy to get past, once you know how it works ;)

Pass is hi

Edited by Killboy
Link to comment
Funny crackme :)

Quite easy, you can actually see what happens without debugging a lot...

Nice idea with the ****load of calls but it's really easy to get past, once you know how it works ;)

Pass is hi

yay! you win, well time to make another crack me. how long did it take you to crack?

Link to comment
Nice idea with the ****load of calls but it's really easy to get past, once you know how it works ;)

Ya lol this is the source. Thank microsoft for the simplicity of vb and its loops.

#include "stdafx.h"

#include <windows.h>

#include <stdio.h>

#include "string.h"

#include <iostream>

using namespace std;

//Pass is hi

char * passw = "password";

char * wrong = "Wrong!";

char * corr = "Correct!";

int check(char* pass)

{

int letters = 0;

char* p = &pass[0];

for (int i = 0;i <= 9;i++)

{

if (*(p + i) == 0)

goto end;

letters++;

}

end:

if (letters == 10){

return true;

}

return false;

}

int fakecaller100(char* pass) {printf(pass);

return 24;}

int fakecaller99(int pass) {char out[10];

out[0] = 67;

out[1] = 111;

out[2] = 114;

out[3] = 114;

out[4] = 101;

out[5] = 99;

out[6] = 116;

out[7] = 33;

out[8] = 13;

out[9] = 10;

out[10] = 0;

return fakecaller100(out);}

int fakecaller98(int pass) {return fakecaller99(pass);}

int fakecaller97(int pass) {return fakecaller98(pass);}

int fakecaller96(int pass) {return fakecaller97(pass);}

int fakecaller95(int pass) {return fakecaller96(pass);}

int fakecaller94(int pass) {return fakecaller95(pass);}

int fakecaller93(int pass) {return fakecaller94(pass);}

int fakecaller92(int pass) {return fakecaller93(pass);}

int fakecaller91(int pass) {return fakecaller92(pass);}//32760384661385027 = Correct

int fakecaller90(int pass) {return fakecaller91(pass);}

int fakecaller89(int pass) {return fakecaller90(pass);}

int fakecaller88(int pass) {return fakecaller89(pass);}

int fakecaller87(int pass) {return fakecaller88(pass);}

int fakecaller86(int pass) {return fakecaller87(pass);}

int fakecaller85(int pass) {return fakecaller86(pass);}

int fakecaller84(int pass) {return fakecaller85(pass);}

int fakecaller83(int pass) {return fakecaller84(pass);}

int fakecaller82(int pass) {return fakecaller83(pass);}

int fakecaller81(int pass) {return fakecaller82(pass);}

int fakecaller80(int pass) {return fakecaller81(pass);}

int fakecaller79(int pass) {return fakecaller80(pass);}

int fakecaller78(int pass) {return fakecaller79(pass);}

int fakecaller77(int pass) {return fakecaller78(pass);}

int fakecaller76(int pass) {return fakecaller77(pass);}

int fakecaller75(int pass) {return fakecaller76(pass);}

int fakecaller74(int pass) {return fakecaller75(pass);}

int fakecaller73(int pass) {return fakecaller74(pass);}

int fakecaller72(int pass) {return fakecaller73(pass);}

int fakecaller71(int pass) {return fakecaller72(pass);}

int fakecaller70(int pass) {return fakecaller71(pass);}

int fakecaller69(int pass) {return fakecaller70(pass);}

int fakecaller68(int pass) {return fakecaller69(pass);}

int fakecaller67(int pass) {return fakecaller68(pass);}

int fakecaller66(int pass) {return fakecaller67(pass);}

int fakecaller65(int pass) {return fakecaller66(pass);}

int fakecaller64(int pass) {return fakecaller65(pass);}

int fakecaller63(int pass) {return fakecaller64(pass);}

int fakecaller62(int pass) {return fakecaller63(pass);}

int fakecaller61(int pass) {return fakecaller62(pass);}

int fakecaller60(int pass) {return fakecaller61(pass);}

int fakecaller59(int pass) {return fakecaller60(pass);}

int fakecaller58(int pass) {return fakecaller59(pass);}

int fakecaller57(int pass) {return fakecaller58(pass);}

int fakecaller56(int pass) {return fakecaller57(pass);}

int fakecaller55(int pass) {return fakecaller56(pass);}

int fakecaller54(int pass) {return fakecaller55(pass);}

int fakecaller53(int pass) {return fakecaller54(pass);}

int fakecaller52(int pass) {return fakecaller53(pass);}

int fakecaller51(int pass) {return fakecaller52(pass);}

int fakecaller50(int pass) {return fakecaller51(pass);}

int fakecaller49(int pass) {return fakecaller50(pass);}

int fakecaller48(int pass) {return fakecaller49(pass);}

int fakecaller47(int pass) {return fakecaller48(pass);}

int fakecaller46(int pass) {return fakecaller47(pass);}

int fakecaller45(int pass) {return fakecaller46(pass);}

int fakecaller44(int pass) {return fakecaller45(pass);}

int fakecaller43(int pass) {return fakecaller44(pass);}

int fakecaller42(int pass) {return fakecaller43(pass);}

int fakecaller41(int pass) {return fakecaller42(pass);}

int fakecaller40(int pass) {return fakecaller41(pass);}

int fakecaller39(int pass) {return fakecaller40(pass);}

int fakecaller38(int pass) {return fakecaller39(pass);}

int fakecaller37(int pass) {return fakecaller38(pass);}

int fakecaller36(int pass) {return fakecaller37(pass);}

int fakecaller35(int pass) {return fakecaller36(pass);}

int fakecaller34(int pass) {return fakecaller35(pass);}

int fakecaller33(int pass) {return fakecaller34(pass);}

int fakecaller32(int pass) {return fakecaller33(pass);}

int fakecaller31(int pass) {return fakecaller32(pass);}

int fakecaller30(int pass) {return fakecaller31(pass);}

int fakecaller29(int pass) {return fakecaller30(pass);}

int fakecaller28(int pass) {return fakecaller29(pass);}

int fakecaller27(int pass) {return fakecaller28(pass);}

int fakecaller26(int pass) {return fakecaller27(pass);}

int fakecaller25(int pass) {return fakecaller26(pass);}

int fakecaller24(int pass) {return fakecaller25(pass);}

int fakecaller23(int pass) {return fakecaller24(pass);}

int fakecaller22(int pass) {return fakecaller23(pass);}

int fakecaller21(int pass) {return fakecaller22(pass);}

int fakecaller20(int pass) {return fakecaller21(pass);}

int fakecaller19(int pass) {return fakecaller20(pass);}

int fakecaller18(int pass) {return fakecaller19(pass);}

int fakecaller17(int pass) {return fakecaller18(pass);}

int fakecaller16(int pass) {return fakecaller17(pass);}

int fakecaller15(int pass) {return fakecaller16(pass);}

int fakecaller14(int pass) {return fakecaller15(pass);}

int fakecaller13(int pass) {return fakecaller14(pass);}

int fakecaller12(int pass) {return fakecaller13(pass);}

int fakecaller11(int pass) {return fakecaller12(pass);}

int fakecaller10(int pass) {return fakecaller11(pass);}

int fakecaller9(int pass) {return fakecaller10(pass);}

int fakecaller8(int pass) {return fakecaller9(pass);}

int fakecaller7(int pass) {return fakecaller8(pass);}

int fakecaller6(int pass) {return fakecaller7(pass);}

int fakecaller5(int pass) {return fakecaller6(pass);}

int fakecaller4(int pass) {return fakecaller5(pass);}

int fakecaller3(int pass) {return fakecaller4(pass);}

int fakecaller2(int pass) {return fakecaller3(pass);}

int fakecaller1(int pass) {return fakecaller2(pass);}

int fakecall100(char* pass) {return 0;}

int fakecall99(char* pass) {return fakecall100(pass);}

int fakecall98(char* pass) {return fakecall99(pass);}

int fakecall97(char* pass) {return fakecall98(pass);}

int fakecall96(char* pass) {return fakecall97(pass);}

int fakecall95(char* pass) {return fakecall96(pass);}

int fakecall94(char* pass) {return fakecall95(pass);}

int fakecall93(char* pass) {return fakecall94(pass);}

int fakecall92(char* pass) {return fakecall93(pass);} //i

int fakecall91(char* pass) {return fakecall92(pass);} //h

int fakecall90(char* pass) {return fakecall91(pass);} //

int fakecall89(char* pass) {return fakecall90(pass);} //s

int fakecall88(char* pass) {return fakecall89(pass);} //i

int fakecall87(char* pass) {return fakecall88(pass);} //

int fakecall86(char* pass) {return fakecall87(pass);} //s

int fakecall85(char* pass) {return fakecall86(pass);} //s

int fakecall84(char* pass) {return fakecall85(pass);} //a

int fakecall83(char* pass) {fakecaller1(1); return fakecall84(pass);} //P

int fakecall82(char* pass) {return fakecall83(pass);}

int fakecall81(char* pass) {return fakecall82(pass);}

int fakecall80(char* pass) {return fakecall81(pass);}

int fakecall79(char* pass) {return fakecall80(pass);}

int fakecall78(char* pass) {return fakecall79(pass);}

int fakecall77(char* pass) {return fakecall78(pass);}

int fakecall76(char* pass) {return fakecall77(pass);}

int fakecall75(char* pass) {return fakecall76(pass);}

int fakecall74(char* pass) {return fakecall75(pass);}

int fakecall73(char* pass) {return fakecall74(pass);}

int fakecall72(char* pass) {if (pass[8] != 104 || pass[9] != 105) return 0;

return fakecall73(pass);}

int fakecall71(char* pass) {return fakecall72(pass);}

int fakecall70(char* pass) {return fakecall71(pass);}

int fakecall69(char* pass) {return fakecall70(pass);}

int fakecall68(char* pass) {return fakecall69(pass);}

int fakecall67(char* pass) {return fakecall68(pass);}

int fakecall66(char* pass) {return fakecall67(pass);}

int fakecall65(char* pass) {return fakecall66(pass);}

int fakecall64(char* pass) {return fakecall65(pass);}

int fakecall63(char* pass) {return fakecall64(pass);}

int fakecall62(char* pass) {return fakecall63(pass);}

int fakecall61(char* pass) {return fakecall62(pass);}

int fakecall60(char* pass) {if (pass[5] == 105)

return fakecall61(pass);

return 0;}

int fakecall59(char* pass) {return fakecall60(pass);}

int fakecall58(char* pass) {if (pass[4] != 32 || pass[7] != 32) return 0;

return fakecall59(pass);}

int fakecall57(char* pass) {return fakecall58(pass);}

int fakecall56(char* pass) {if (pass[2] != 115 || pass[3] != 115 || pass[6] != 115) return 0;

return fakecall57(pass);}

int fakecall55(char* pass) {if (pass[0] != 80) return 0;

return fakecall56(pass);}

int fakecall54(char* pass) {return fakecall55(pass);}

int fakecall53(char* pass) {return fakecall54(pass);}

int fakecall52(char* pass) {return fakecall53(pass);}

int fakecall51(char* pass) {return fakecall52(pass);}

int fakecall50(char* pass) {return fakecall51(pass);}

int fakecall49(char* pass) {if (pass[1] != 97)

return 0;

return fakecall50(pass);}

int fakecall48(char* pass) {return fakecall49(pass);}

int fakecall47(char* pass) {return fakecall48(pass);}

int fakecall46(char* pass) {return fakecall47(pass);}

int fakecall45(char* pass) {return fakecall46(pass);}

int fakecall44(char* pass) {return fakecall45(pass);}

int fakecall43(char* pass) {return fakecall44(pass);}

int fakecall42(char* pass) {return fakecall43(pass);}

int fakecall41(char* pass) {return fakecall42(pass);}

int fakecall40(char* pass) {return fakecall41(pass);}

int fakecall39(char* pass) {return fakecall40(pass);}

int fakecall38(char* pass) {return fakecall39(pass);}

int fakecall37(char* pass) {return fakecall38(pass);}

int fakecall36(char* pass) {return fakecall37(pass);}

int fakecall35(char* pass) {return fakecall36(pass);}

int fakecall34(char* pass) {return fakecall35(pass);}

int fakecall33(char* pass) {return fakecall34(pass);}

int fakecall32(char* pass) {return fakecall33(pass);}

int fakecall31(char* pass) {return fakecall32(pass);}

int fakecall30(char* pass) {return fakecall31(pass);}

int fakecall29(char* pass) {if (check(pass) == false)

return 0;

return fakecall30(pass);}

int fakecall28(char* pass) {return fakecall29(pass);}

int fakecall27(char* pass) {return fakecall28(pass);}

int fakecall26(char* pass) {if (pass == "password")

MessageBox(NULL,"o you got me!","...",0);

return fakecall27(pass);}

int fakecall25(char* pass) {return fakecall26(pass);}

int fakecall24(char* pass) {gets(pass); return fakecall25(pass);}

int fakecall23(char* pass) {return fakecall24(pass);}

int fakecall22(char* pass) {return fakecall23(pass);}

int fakecall21(char* pass) {return fakecall22(pass);}

int fakecall20(char* pass) {

printf("Enter Password: ");

return fakecall21(pass);}

int fakecall19(char* pass) {return fakecall20(pass);}

int fakecall18(char* pass) {return fakecall19(pass);}

int fakecall17(char* pass) {return fakecall18(pass);}

int fakecall16(char* pass) {return fakecall17(pass);}

int fakecall15(char* pass) {return fakecall16(pass);}

int fakecall14(char* pass) {return fakecall15(pass);}

int fakecall13(char* pass) {return fakecall14(pass);}

int fakecall12(char* pass) {return fakecall13(pass);}

int fakecall11(char* pass) {return fakecall12(pass);}

int fakecall10(char* pass) {return fakecall11(pass);}

int fakecall9(char* pass) {return fakecall10(pass);}

int fakecall8(char* pass) {return fakecall9(pass);}

int fakecall7(char* pass) {return fakecall8(pass);}

int fakecall6(char* pass) {return fakecall7(pass);}

int fakecall5(char* pass) {return fakecall6(pass);}

int fakecall4(char* pass) {return fakecall5(pass);}

int fakecall3(char* pass) {return fakecall4(pass);}

int fakecall2(char* pass) {return fakecall3(pass);}

int fakecall1(char* pass) {return fakecall2(pass);}

int faketoo()

{

return 0;

}

int main(int argc, char* argv[])

{

attempt:

if (1!=1){

return 0;

}

if (2!=2){

return 0;

}

if (3!=3){

return 0;

}

if (4!=4){

return 0;

}

if (5!=5){

return 0;

}

if (6!=6){

return 0;

}

if (7!=7){

return 0;

}

if (8!=8){

return 0;

}

if (9!=9){

return 0;

}

if (10!=10){

return 0;

}

if (11!=11){

return 0;

}

if (12!=12){

return 0;

}

if (13!=13){

return 0;

}

if (14!=14){

return 0;

}

if (15!=15){

return 0;

}

if (16!=16){

return 0;

}

if (17!=17){

return 0;

}

if (18!=18){

return 0;

}

if (19!=19){

return 0;

}

if (20!=20){

return 0;

}

if (21!=21){

return 0;

}

if (22!=22){

return 0;

}

if (23!=23){

return 0;

}

if (24!=24){

return 0;

}

if (25!=25){

return 0;

}

if (26!=26){

return 0;

}

if (27!=27){

return 0;

}

if (28!=28){

return 0;

}

if (29!=29){

return 0;

}

if (30!=30){

return 0;

}

if (31!=31){

return 0;

}

if (32!=32){

return 0;

}

if (33!=33){

return 0;

}

if (34!=34){

return 0;

}

if (35!=35){

return 0;

}

if (36!=36){

return 0;

}

if (37!=37){

return 0;

}

if (38!=38){

return 0;

}

if (39!=39){

return 0;

}

if (40!=40){

return 0;

}

if (41!=41){

return 0;

}

if (42!=42){

return 0;

}

if (43!=43){

return 0;

}

if (44!=44){

return 0;

}

if (45!=45){

return 0;

}

if (46!=46){

return 0;

}

if (47!=47){

return 0;

}

if (48!=48){

return 0;

}

if (49!=49){

return 0;

}

if (50!=50){

return 0;

}

if (51!=51){

return 0;

}

if (52!=52){

return 0;

}

if (53!=53){

return 0;

}

if (54!=54){

return 0;

}

if (55!=55){

return 0;

}

if (56!=56){

return 0;

}

if (57!=57){

return 0;

}

if (58!=58){

return 0;

}

if (59!=59){

return 0;

}

if (60!=60){

return 0;

}

if (61!=61){

return 0;

}

if (62!=62){

return 0;

}

if (63!=63){

return 0;

}

if (64!=64){

return 0;

}

if (65!=65){

return 0;

}

if (66!=66){

return 0;

}

if (67!=67){

return 0;

}

if (68!=68){

return 0;

}

if (69!=69){

return 0;

}

if (70!=70){

return 0;

}

if (71!=71){

return 0;

}

if (72!=72){

return 0;

}

if (73!=73){

return 0;

}

if (74!=74){

return 0;

}

if (75!=75){

return 0;

}

if (76!=76){

return 0;

}

if (77!=77){

return 0;

}

if (78!=78){

return 0;

}

if (79!=79){

return 0;

}

if (80!=80){

return 0;

}

if (81!=81){

return 0;

}

if (82!=82){

return 0;

}

if (83!=83){

return 0;

}

if (84!=84){

return 0;

}

if (85!=85){

return 0;

}

if (86!=86){

return 0;

}

if (87!=87){

return 0;

}

if (88!=88){

return 0;

}

if (89!=89){

return 0;

}

if (90!=90){

return 0;

}

if (91!=91){

return 0;

}

if (92!=92){

return 0;

}

if (93!=93){

return 0;

}

if (94!=94){

return 0;

}

if (95!=95){

return 0;

}

if (96!=96){

return 0;

}

if (97!=97){

return 0;

}

if (98!=98){

return 0;

}

if (99!=99){

return 0;

}

if (100!=100){

return 0;

}

char pass[10];

int t = fakecall1(pass);

if (t != 24)

goto attempt;

faketoo();

getchar();

return 0;

}

Link to comment

First time spoiling was indeed funny... but looking at spoiled source kinda sux :/

No harm intended, thx for ur stuff & keep 'em coming ;):)

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...