AKoff Guitar Assistant...version 1.01

By Krobar / Jan 2000


The program..........AKoff Guitar Assistant...version 1.01......get it at http://www.download.com

The tools................Softice.... I using version 4.

AKoff Guitar Assistant can assist in visually tuning your guitar with a microphone or an electric guitar connected to your PC's sound card. It analyzes in real time a stream of audio signals from the WAV input of your sound card and then calculates the main frequency. This frequency is shown by a pointer on the graphic guitar signature stamp (frets), comparing it to the proper frequency. Tuning a string now simply means centering the pointer on the appropriate graphic fret. This trial version has a nag screen. The registered version sells for $19.

Start program, click register, and put in email address and any shit number.

Ctrl D into softice, and set breakpoint...bpx GETDLGITEMTEXTA. F5 out of sice and click register...and ....back into softice .

Now push F5 again, to get to the serial routine, then F11 to get out of the call, and disable breakpoint...bd00. You should have landed in the program code, on a call:


* Reference To: user32.GetDlgItemTextA, Ord:00E5h
                                  |
:004019F5 E8D29E0100              Call 0041B8CC
:004019FA E87DFAFFFF              call 0040147C <-LAND HERE
:004019FF 833D14E2410000          cmp dword ptr [0041E214], 00000000
:00401A06 741C                    je 00401A24
:00401A08 E863FCFFFF              call 00401670
:00401A0D 68A1114000              push 004011A1
:00401A12 6A00                    push 00000000
:00401A14 6A0C                    push 0000000C
:00401A16 FF3518E24100            push dword ptr [0041E218]

Now remember!! Quite often we looking for a call, closely followed by a cmp/test, then a je or jne, and shit, looks like that here!!

So F8 into the call at 004019FA and you'll land here:

* Referenced by a CALL at Addresses:
|:004011CD   , :004019FA   
|
:0040147C 55                      push ebp <-LAND HERE
:0040147D 89E5                    mov ebp, esp
:0040147F 83EC18                  sub esp, 00000018
:00401482 57                      push edi
:00401483 8A057B144000            mov al, byte ptr [0040147B]
:00401489 8845EC                  mov byte ptr [ebp-14], al
:0040148C 8D45ED                  lea eax, dword ptr [ebp-13]
:0040148F 6A13                    push 00000013
:00401491 6A00                    push 00000000
:00401493 50                      push eax

* Reference To: crtdll.memset, Ord:01ADh
                                  |
:00401494 E86F660100              Call 00417B08
:00401499 83C40C                  add esp, 0000000C
:0040149C 8D7DEC                  lea edi, dword ptr [ebp-14]
:0040149F 57                      push edi
:004014A0 E8DBFDFFFF              call 00401280
:004014A5 31D2                    xor edx, edx
:004014A7 88D0                    mov al, dl
:004014A9 FC                      cld
:004014AA B9FFFFFFFF              mov ecx, FFFFFFFF
:004014AF F2                      repnz
:004014B0 AE                      scasb
:004014B1 83C404                  add esp, 00000004
:004014B4 83F9F2                  cmp ecx, FFFFFFF2
:004014B7 7512                    jne 004014CB
:004014B9 BF10E14100              mov edi, 0041E110
:004014BE FC                      cld
:004014BF B9FFFFFFFF              mov ecx, FFFFFFFF
:004014C4 F2                      repnz
:004014C5 AE                      scasb
:004014C6 83F9F2                  cmp ecx, FFFFFFF2
:004014C9 7402                    je 004014CD

I think somewhere around here we going to find the serial, so it really a case of dumping whats in memory as we F10 down, and see if we can locate it. Now we see the call at 004014A0. If we F8 into this, we'll find ourselves in what appears to be the serial routine. We'll see our email address we entered getting mucked around with, and we'll find ourselves in a couple of loops. When we eventually reach a ret, and exit that routine, we'll be at the next line after the call we just entered...here:


:004014A0 E8DBFDFFFF              call 00401280
:004014A5 31D2                    xor edx, edx <-HERE
:004014A7 88D0                    mov al, dl
:004014A9 FC                      cld
:004014AA B9FFFFFFFF              mov ecx, FFFFFFFF
:004014AF F2                      repnz
:004014B0 AE                      scasb
:004014B1 83C404                  add esp, 00000004
:004014B4 83F9F2                  cmp ecx, FFFFFFF2
:004014B7 7512                    jne 004014CB
:004014B9 BF10E14100              mov edi, 0041E110
:004014BE FC                      cld
:004014BF B9FFFFFFFF              mov ecx, FFFFFFFF
:004014C4 F2                      repnz
:004014C5 AE                      scasb
:004014C6 83F9F2                  cmp ecx, FFFFFFF2
:004014C9 7402                    je 004014CD

and at address 004014A5 XOR EDX, EDX if you type d edx, the correct number should be displayed in the data window.

F5 out of softice and poke this number where it belongs. You dont get any thanks but instead of displaying unregistered, you'll now be using the registered version.