FTP Navigator 4.15 Tutor : _duelist Date Wrote : August 20, 1999 Target : FTP Navigator v4.15 Tools Used : w32dasm, Hiew (or any other hex editor) Method : Patch Introduction: Hi. I must admit that patching is not the kind of cracking i enjoy but i know that is THE way for newbies to begin. So, i'm writing this tuturial hoping that at least one newbie will learn from it. I'd like to congratulate TORN@DO for the good work he is doing in preparing the next generation of crackers. Enough blah blah blah, let's get things rolling. Cracking: I recommend you always run the target you are cracking before even loading it in w32dasm, which is a thing many people do. First check if there isn't a place to enter a serial, and if there isn't, well, we'll have to patch it then. I had a quick look around this program and didn't seem to find any dialog to enter a serial. But, this way i know what we need to do now: we must remove the nag, and the buggy '(unregistered)' in the window's caption. It's now time to load your disassembler (w32dasm). TIP: It's better you copy Ftp.exe to any other filename and disassemble the new one so you can patch the original whenever you wish (w32dasm disables write access to the loaded file) '(Unregistered)': If you search for this string (by either using the search function or by looking at 'string data references' menu) you will not find it. So, this indicates us that the string is hardcoded and there's no way the program will make it different. Unless, of course, we change the string itself by hex editing the exe. Load HIEW with Ftp.exe as a target, and hit F7, which is the search function. Type in '(Unregistered)', without quotes, and hit enter. You'll get to the correct string. I don't think we need their mail in the caption so i think we'll get off everything after the version info. Make sure HIEW is in Hex mode (F4 to change) and replace the byte after '4.15', which is 20h, to a 00h. This is because strings are null terminated and the program will stop when it finds a 00, which to him is the same as 'string terminates here'. TIP: Highlight the 20h, press F3 and press 0 twice... Then F9 to apply the change and F10 to quit. Now run the patched file. Yes, i like the look of the caption now! Hope it worked fine for you, if it didn't, please start reading this section again. Nag: Ok i hope you didn't close w32dasm coz we still have work to do there. Click the GoTo menu, then GoTo Program Entry Point. Around here, should be the nag calling code, since it is the first thing the program apparently does: :00461EF0 55 push ebp :00461EF1 8BEC mov ebp, esp :00461EF3 83C4F4 add esp, FFFFFFF4 :00461EF6 53 push ebx :00461EF7 B8781D4600 mov eax, 00461D78 :00461EFC E8C338FAFF call 004057C4 :00461F01 8B1DC42D4600 mov ebx, dword ptr [00462DC4] :00461F07 8B03 mov eax, dword ptr [ebx] * Possible StringData Ref from Code Obj ->"FTP - Navigator" | :00461F09 BA901F4600 mov edx, 00461F90 :00461F0E E81DDDFCFF call 0042FC30 :00461F13 8B03 mov eax, dword ptr [ebx] :00461F15 83C034 add eax, 00000034 * Possible StringData Ref from Code Obj ->"Ftpnav.hlp" | :00461F18 BAA81F4600 mov edx, 00461FA8 :00461F1D E8FA1AFAFF call 00403A1C :00461F22 E8C57EFFFF call 00459DEC :00461F27 E82C7DFFFF call 00459C58 <<<<<<<<<<<< :00461F2C 8B0D582E4600 mov ecx, dword ptr [00462E58] :00461F32 8B03 mov eax, dword ptr [ebx] :00461F34 8B155CA14500 mov edx, dword ptr [0045A15C] :00461F3A E8D9DFFCFF call 0042FF18 :00461F3F 8B0DD82D4600 mov ecx, dword ptr [00462DD8] To say the truth, it wouldn't be easy from w32dasm to determine which call do we need to get out. Since this time we are not using sice, your only chance was to nop (fill with 90h) one call at a time then try running the program. This time i'll tell you which is the correct call, now look at its virtual address, 461F27. Load hiew, press F5 and type: '.461F27'. This will make it know that you wanna go to virtual address 461F27. Since the call statement is 5 bytes long, E8h 2Ch 7Dh FFh FFh, overwrite those bytes with five 90h. F9 once again to apply changes, then F10 to quit. Run it! Yep, we (you) did it. It probably now looks exactly like the registered version, except that our caption text is cooler. Greets: This is the section which makes the most pain out of me since i always forget more than 50% of the people... So this time i'll make a general greet: i greet everyone willing to learn and willing to teach that ever joined #c4n. Also a special greet to TORN@DO on the great work he is doing. If you wish any further help on this tuturial please mail me at duelist@beer.com. Cheers, _duelist