Mã:
- Code:
[/color][color=blue]// hack.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "windows.h"
int main(int argc, char* argv[])
{
FILE *f1,*f2;
int ren;
ren=rename("DATA\\050.acv","DATA\\temp.db");
printf("Hack del Audition Viet Nam\n");
printf("Website: .............\n");
if(ren==-1){
printf("Hay dat chuong trinh trong thu muc cua Audition\nAn nut bat ki de thoat...\n");
getch();
return 0;
}
f1=fopen("DATA\\temp.db","rb");
if(f1==NULL){
printf("Co loi xay ra trong khi thuc thi chuong trinh.\n");
return 0;
}
fseek(f1,0,SEEK_END);
if(ftell(f1)!=52012748){
printf("DATA da sua doi, viec chay tiep chuong trinh se gay hong DATA!\n");
fclose(f1);
rename("DATA\\temp.db","DATA\\050.acv");
printf("An nut bat ki de thoat...\n");
getch();
return 0;
}
fseek(f1,0,SEEK_SET);
int i;
int c;
f2=fopen("DATA\\050.acv","w+b");
for(i=0;i<=0x8f653;i++){
c=getc(f1);
putc(c,f2);
}
int addr1,addr2,vt1,vt2,j,k;
addr1=0x518f8;
addr2=0x63e2c;
for(i=1;i<=4;i++){//Replace chance4_21->chance4_87
for(j=1;j<=7;j++){
vt1=addr1+((i-1)*7+j-1)*180;
vt2=addr2-((i-1)*7-j+1)*180;
fseek(f2,vt1,SEEK_SET);
fseek(f1,vt2,SEEK_SET);
for(k=1;k<=8;k++){
putc(getc(f1),f2);
}
}
}
addr1=0x52ca8;
addr2=0x6658c;
for(i=1;i<=8;i++){
for(j=1;j<=7;j++){
vt1=addr1+((i-1)*7+j-1)*180;
vt2=addr2-((i-1)*7-j+1)*180;
fseek(f2,vt1,SEEK_SET);
fseek(f1,vt2,SEEK_SET);
for(k=1;k<=8;k++){
putc(getc(f1),f2);
}
}
}
addr1=0x55408;
addr2=0x62428;
for(i=1;i<=8;i++){
for(j=1;j<=8;j++){
vt1=addr1+((i-1)*8+j-1)*180;
vt2=addr2-((i-1)*8-j+1)*180;
fseek(f2,vt1,SEEK_SET);
fseek(f1,vt2,SEEK_SET);
for(k=1;k<=8;k++){
putc(getc(f1),f2);
}
}
}
addr1=0x6aa74;
addr2=0x7cfa8;
for(i=1;i<=4;i++){//Replace chance4_21->chance4_87
for(j=1;j<=7;j++){
vt1=addr1+((i-1)*7+j-1)*180;
vt2=addr2-((i-1)*7-j+1)*180;
fseek(f2,vt1,SEEK_SET);
fseek(f1,vt2,SEEK_SET);
for(k=1;k<=8;k++){
putc(getc(f1),f2);
}
}
}
addr1=0x6be24;
addr2=0x7f708;
for(i=1;i<=8;i++){
for(j=1;j<=7;j++){
vt1=addr1+((i-1)*7+j-1)*180;
vt2=addr2-((i-1)*7-j+1)*180;
fseek(f2,vt1,SEEK_SET);
fseek(f1,vt2,SEEK_SET);
for(k=1;k<=8;k++){
putc(getc(f1),f2);
}
}
}
addr1=0x6e584;
addr2=0x7b5a4;
for(i=1;i<=8;i++){
for(j=1;j<=8;j++){
vt1=addr1+((i-1)*8+j-1)*180;
vt2=addr2-((i-1)*8-j+1)*180;
fseek(f2,vt1,SEEK_SET);
fseek(f1,vt2,SEEK_SET);
for(k=1;k<=8;k++){
putc(getc(f1),f2);
}
}
}
//Bat dau chuyen sang giai doan ghi data
fseek(f2,0,SEEK_END);
fseek(f1,587348,SEEK_SET);
i=1;//chance4_21 : 3263*180+8+42250672=42838020
while(i<=42250672){//ftell(f1)<=42841868
putc(getc(f1),f2);
i++;
}
addr1=0x518f8;
addr2=0x63e2c;
DWORD compsz,ptr;
for(i=1;i<=4;i++){
for(j=1;j<=7;j++){
vt1=addr1+((i-1)*7+j-1)*180;
vt2=addr2-((i-1)*7-j+1)*180;
//fseek(f2,vt1,SEEK_SET);
fseek(f1,vt2,SEEK_SET);
fread(&compsz,4,1,f1);
fseek(f1,vt2+8,SEEK_SET);
fread(&ptr,4,1,f1);
fseek(f1,3263*180+8+ptr,SEEK_SET);
for(k=1;k<=compsz;k++){
putc(getc(f1),f2);
//k++;
}
}
}
addr1=0x52ca8;
addr2=0x6658c;
for(i=1;i<=8;i++){
for(j=1;j<=7;j++){
vt1=addr1+((i-1)*7+j-1)*180;
vt2=addr2-((i-1)*7-j+1)*180;
//fseek(f2,vt1,SEEK_SET);
fseek(f1,vt2,SEEK_SET);
fread(&compsz,4,1,f1);
fseek(f1,vt2+8,SEEK_SET);
fread(&ptr,4,1,f1);
fseek(f1,3263*180+8+ptr,SEEK_SET);
for(k=1;k<=compsz;k++){
putc(getc(f1),f2);
//k++;
}
}
}
addr1=0x55408;
addr2=0x62428;
for(i=1;i<=8;i++){
for(j=1;j<=8;j++){
vt1=addr1+((i-1)*8+j-1)*180;
vt2=addr2-((i-1)*8-j+1)*180;
//fseek(f2,vt1,SEEK_SET);
fseek(f1,vt2,SEEK_SET);
fread(&compsz,4,1,f1);
fseek(f1,vt2+8,SEEK_SET);
fread(&ptr,4,1,f1);
fseek(f1,3263*180+8+ptr,SEEK_SET);
for(k=1;k<=compsz;k++){
putc(getc(f1),f2);
// k++;
}
}
}
fseek(f1,0x295A094,SEEK_SET);//3263*180+8+0x28caa40
for(i=1;i<=0x25F1B0;i++){ //2b29bf0+3263*180+8-0x295A094
putc(getc(f1),f2);
}
addr1=0x6aa74;
addr2=0x7cfa8;
for(i=1;i<=4;i++){
for(j=1;j<=7;j++){
vt1=addr1+((i-1)*7+j-1)*180;
vt2=addr2-((i-1)*7-j+1)*180;
//fseek(f2,vt1,SEEK_SET);
fseek(f1,vt2,SEEK_SET);
fread(&compsz,4,1,f1);
fseek(f1,vt2+8,SEEK_SET);
fread(&ptr,4,1,f1);
fseek(f1,3263*180+8+ptr,SEEK_SET);
for(k=1;k<=compsz;k++){
putc(getc(f1),f2);
//k++;
}
}
}
addr1=0x6be24;
addr2=0x7f708;
for(i=1;i<=8;i++){
for(j=1;j<=7;j++){
vt1=addr1+((i-1)*7+j-1)*180;
vt2=addr2-((i-1)*7-j+1)*180;
//fseek(f2,vt1,SEEK_SET);
fseek(f1,vt2,SEEK_SET);
fread(&compsz,4,1,f1);
fseek(f1,vt2+8,SEEK_SET);
fread(&ptr,4,1,f1);
fseek(f1,3263*180+8+ptr,SEEK_SET);
for(k=1;k<=compsz;k++){
putc(getc(f1),f2);
//k++;
}
}
}
addr1=0x6e584;
addr2=0x7b5a4;
for(i=1;i<=8;i++){
for(j=1;j<=8;j++){
vt1=addr1+((i-1)*8+j-1)*180;
vt2=addr2-((i-1)*8-j+1)*180;
//fseek(f2,vt1,SEEK_SET);
fseek(f1,vt2,SEEK_SET);
fread(&compsz,4,1,f1);
fseek(f1,vt2+8,SEEK_SET);
fread(&ptr,4,1,f1);
fseek(f1,3263*180+8+ptr,SEEK_SET);
for(k=1;k<=compsz;k++){
putc(getc(f1),f2);
// k++;
}
}
}
// fseek(f1,3263*180+8+42773056,SEEK_SET);
fseek(f1,0x2C0D7CC,SEEK_SET); //0x2B7E178
while((c=getc(f1))!=EOF){
putc(c,f2);
}
addr1=0xac;
DWORD nextptr;
for(i=1;i<=3263;i++){
fseek(f2,addr1+(i-1)*180,SEEK_SET);
fread(&compsz,4,1,f2);
fseek(f2,addr1+(i-1)*180+8,SEEK_SET);
fread(&ptr,4,1,f2);
nextptr=compsz+ptr;
printf("%d\n",nextptr);
if(i<3263){
fseek(f2,addr1+i*180+8,SEEK_SET);
fwrite(&nextptr,4,1,f2);
}
}
fcloseall();
remove("DATA\\temp.db");
printf("OK! Da cai dat hack del thanh cong, gio ban co the vao game va thuong thuc!\n");
printf("An nut bat ki de thoat chuong trinh ...\n");
getch();
return 0;
}[/color][color=blue]
nhớ nhá C++ đấy :d