Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2012-06-07, 02:22
  #1
Medlem
Det här är första gången jag försöker skapa en crackad exe, no cd.
Jag har följt diverse guider och känner mig ganska påläst om detta nu.
Med hjälp av W32Dasm har jag lyckats hitta några intressanta adresser. Mitt problem är att min crackade exe uppträder precis som vanligt trots mina ändringar.

Jag skulle behöva lite hjälp med att tyda den information jag hittat. Jag misstänker att "Upptäckt 1" är min bingo.
Så här ser det ut på adressen 0041E9E3 från Upptäckt 1, i OllyDbg:
Kod:
0041E9E1      85C0                             TEST EAX,EAX
0041E9E3      75 18                            JNZ SHORT Pharaoh_.0041E9FD
Som jag förstår det kollar TEST EAX,EAX om värdet är 0 och därefter utförs JNZ (jump if not zero). Alltså att man hoppar vidare om värdet är 1. Då bör jag väl rimligtvis kunna ändra JNZ till JE (jump if equal)? Jag har gjort detta men får ändå upp CD-rutan. Det är här jag behöver hjälp.
Kan lägga upp original exe om någon vill ge sig på den.


Upptäckt 1

Upptäckt 2
Upptäckt 3
Citera
2012-06-07, 11:49
  #2
Medlem
Munkeens avatar
Nu var det ett tag sedan jag pysslade med assembler x86, men JE används väl i samband med CMP? Det du borde byta ut till om du vill ha motsatt effekt är JZ.

Nu har jag inte kollat på koden, men jag kan kanske göra det sen när jag får tid. Vad är det som du försöker cracka föresten?
Citera
2012-06-07, 16:10
  #3
Medlem
echel0ns avatar
Citat:
Ursprungligen postat av Munkeen
Nu var det ett tag sedan jag pysslade med assembler x86, men JE används väl i samband med CMP? Det du borde byta ut till om du vill ha motsatt effekt är JZ.

Nu har jag inte kollat på koden, men jag kan kanske göra det sen när jag får tid. Vad är det som du försöker cracka föresten?
JE = JZ
CMP är en SUB som inte lagrar resultatet utan bara sätter flaggor, om a=b följer att a-b=0, alltså sätts ZF (zero flag) och JE testar därför ZF, precis som JZ gör.

TS: Byt inte ut JNZ till JZ, bestäm dig för om den aldrig eller alltid ska hoppa och använd sedan NOPs eller JMP.
Citera
2012-06-07, 20:20
  #4
Medlem
Citat:
Ursprungligen postat av Munkeen
Nu var det ett tag sedan jag pysslade med assembler x86, men JE används väl i samband med CMP? Det du borde byta ut till om du vill ha motsatt effekt är JZ.

Nu har jag inte kollat på koden, men jag kan kanske göra det sen när jag får tid. Vad är det som du försöker cracka föresten?
Jag försöker cracka tillägget till det gamla strategispelet Farao, "Kleopatra: Nilens Drottning". Det finns inget crack till den svenska 2.1-versionen (vad jag vet) och det engelska cracket fuckar lite med åäö i spelet, kan säkert bli andra oväntade fel också. Det är därför jag vill ha ett crack just för svenska 2.1.

Citat:
Ursprungligen postat av echel0n
JE = JZ
CMP är en SUB som inte lagrar resultatet utan bara sätter flaggor, om a=b följer att a-b=0, alltså sätts ZF (zero flag) och JE testar därför ZF, precis som JZ gör.

TS: Byt inte ut JNZ till JZ, bestäm dig för om den aldrig eller alltid ska hoppa och använd sedan NOPs eller JMP.
Ska jag testa med dessa ändringar menar du?
JNZ SHORT Pharaoh_.0041E9FD
NOP SHORT Pharaoh_.0041E9FD
JMP SHORT Pharaoh_.0041E9FD

Edit: Jag har även den engelska versionen av spelet i version 2.1 så jag ska jämföra original exe med cracket för att se om jag kan luska ut hur geniet före mig bar sig åt.
__________________
Senast redigerad av KaptenPanaka 2012-06-07 kl. 20:37.
Citera
2012-06-07, 20:41
  #5
Medlem
echel0ns avatar
Citat:
Ursprungligen postat av KaptenPanaka
Ska jag testa med dessa ändringar menar du?
JNZ SHORT Pharaoh_.0041E9FD
NOP SHORT Pharaoh_.0041E9FD
JMP SHORT Pharaoh_.0041E9FD
Kod:
0041E9E3      75 18                            JNZ SHORT Pharaoh_.0041E9FD
Jag menar att det fetade ska bli antingen
Kod:
0041E9E3      90                               NOP
0041E9E4      90                               NOP
för att inte hoppa alls, aldrig, under några omständigheter, eller
Kod:
0041E9E3      XX 18                            JMP SHORT Pharaoh_.0041E9FD
för att alltid hoppa. (XX för att jag inte kan JMP SHORTs op-code i huvudet längre och inte orkar kolla upp den)

Jag vet inte vilket av det du vill göra, det beror på vad Pharaoh_.0041E9FD utför, om det får rutan att visas NOPar du, om det är dit du vill byter du till JMP.

<edit>
Citat:
Ursprungligen postat av KaptenPanaka
NOP SHORT Pharaoh_.0041E9FD
Kom på att jag bör påpeka: NOP är en instruktion utan operander, alltså kan det inte bli en NOP SHORT utan det blir två instruktioner. Poängen med NOP i det här fallet är att ta upp plats utan att krascha något. Du vill bli av med JNZ, alltså måste du ha något annat där i stället.
</edit>
__________________
Senast redigerad av echel0n 2012-06-07 kl. 20:44.
Citera
2012-06-07, 21:05
  #6
Medlem
.Chloes avatar
Citat:
Ursprungligen postat av KaptenPanaka
Upptäckt 2

Det ser intressant ut. Låt oss säga att koden ovanför ser om du har CD i eller ej, om du inte har så kommer en ruta fram och säger så. Om du har en CD så kan du spela. Så då ska du hoppa över den instruktionen. Innan allt, kommer antagligen en TEST eller CMP och den kommer se om du har CD eller ej, du kan enkelt lägga in en statisk pointer där. Annars öppna .exen i ResHack och leta upp dialogen om CD'n och ta bort den.
Citera
2012-06-07, 21:37
  #7
Medlem
Jag ska ta itu med alla svar och förslag snart om detta inte funkar.
Jag har öppnat original-exe och crack-exe för spelet i varsin Olly-ruta. Sparat ner allt i textfiler och jämförde dem med ett program som hette ExamDiff.
Den hittade då en skillnad på alla tusentals rader:
00413F9C . 75 62 JNZ SHORT Pharaoh.00414000
00413F9C . EB 62 JMP SHORT Pharaoh.00414000
INTRESSANT!!!
Nu ska jag se vart adressen 00413F9C befinner sig i W32Dasm och sen kolla i svenska exe om jag kan hitta något liknande där.
Citera
2012-06-07, 22:10
  #8
Medlem
Det fungerade inte nu heller. Jag gjorde en bild som ni kan kolla på. Den visar skillnaderna mellan engelska original och crack samt den svenska originalen.
Det är lite skillnad mellan engelska och svenska. Ser ut att vara fler moment i svenska...
Går det att tyda något tro?
http://img507.imageshack.us/img507/8859/farao.jpg
Citera
2012-06-15, 10:42
  #9
Medlem
nisse14s avatar
Citat:
Ursprungligen postat av KaptenPanaka
Det fungerade inte nu heller. Jag gjorde en bild som ni kan kolla på. Den visar skillnaderna mellan engelska original och crack samt den svenska originalen.
Det är lite skillnad mellan engelska och svenska. Ser ut att vara fler moment i svenska...
Går det att tyda något tro?
http://img507.imageshack.us/img507/8859/farao.jpg

Vart leder JE 0041EAAA?
Prova att NOP'a bort den instruktionen och ändra JNE 0041EA9D till JMP 0041EA9D
Citera
2012-06-15, 21:04
  #10
Medlem
echel0ns avatar
Citat:
Ursprungligen postat av KaptenPanaka
Det fungerade inte nu heller. Jag gjorde en bild som ni kan kolla på. Den visar skillnaderna mellan engelska original och crack samt den svenska originalen.
Det är lite skillnad mellan engelska och svenska. Ser ut att vara fler moment i svenska...
Går det att tyda något tro?
http://img507.imageshack.us/img507/8859/farao.jpg
Jämför 00414000 i den engelska filen med 0041EA9D i den svenska. Kan det vara samma kod? Alltså inte nödvändigtvis exakt samma instruktioner, men kod som utför samma sak. Om styckena är likvärdiga bör ett byte av JNE till JMP bli bra kan jag tycka.
Citera
2012-06-16, 10:57
  #11
Medlem
Intressant. För drygt ett år sedan crackade jag svenska Farao (inte expansionen), tog inte mer än några minuter att slänga ihop ett skit-crack.

Spelet går igenom alla enheter på datorn för att hitta sin cd-skiva. Som jag minns det bryr sig spelet bara om två saker:
1. Enheten måste innehålla CD-filerna.
2. Enheten måste vara en cd-enhet.

1. löste jag genom att lägga cd-filerna i C:\ och 2. genom att NOPa (eller ändra den följande jump-instruktionen för) några få WinAPI calls.

Hittar inte svenska Kleopatra: Nilens Drottning online någonstans, hade varit riktigt trevligt om du kunde slänga upp den.
Citera
2012-07-17, 01:22
  #12
Medlem
Både Farao och Kleopatra finns numera på piratebay.
Om nån lyckas cracka kleopatra 2.1 så hör gärna av dig till mig!
Citera
  • 1
  • 2

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback