[ DarkMan @ 14.06.2004. 14:43 ] @
Znam da je matematika ali ima veze sa C-om: Imam sledecu funkciju Code: DWORD func(DWORD a) { DWORD b; b = a * 0x12345678 + 0x11111111; return b; } Da je u pitanju cista matematika inverzna funcija bi bila ovakva: Code: DWORD inverse(DWORD b) { DWORD a; a = (b - 0x11111111) / 0x12345678; return a; } Medjutim ovo nije slucaj zato sto se pri proracunu odbacuju visi delovi rezultata (ne moze da stane u DWORD). U sustini mislim da je i nemoguce napraviti inverznu funkciju u ovom slucaju ali ajde da pokusam, mozda ovde postoji neko ko provali ovo. Jedino sto sam ja uspeo je ovaj banalan (brutalan) pristup: Code: DWORD inverse(DWORD b) { DWORD a; for(a = 0; a < 0xFFFFFFFF; a++) if(func(a) == b) return a; return 0; } Napominjem da se nikakve izmene ne mogu raditi u prvobitnoj funkciji (odsecanja u racunu su neophodna). Meni treba resenje za inverznu funkciju. |