A while back I ripped some art instruction videos and found that they had the sound badly out of sync with the video. Ripping a new copy got the same results (old one was ripped in Linux, new one in Windows).
I did some Googling and found this solution:
Download a free program called VirtualDub. No need to install it. The program runs without an installer by double-clicking VirtualDub.exe.
Click FILE>Open Video File... then choose your video.
Now to fix the audio, click the AUDIO>Interleaving. Under Audio Skew Correction, select the number of milliseconds of your audio delay. This is the difficult part, as it's hard to know exactly how many seconds of delay you have. My art videos were off by as much as 12.5 seconds (12500ms). Make your best guess and click OK.
Now to preview, play the video with the controls at the bottom of the window. Go back and adjust the delay, as above, until the video is in sync. When you're happy with the results, click FILE>Save As AVI, and choose a name and path to save. I don't recommend over-writing your original. The save process takes as little as a half a minute, or as long as an hour or more. Not sure why.
One more thing. You may want to check the compression settings before saving. Go to VIDEO>Compression, and make sure it is not set to save videos uncompressed. A single uncompressed video can take up hundreds of gigabytes of hard drive space, where it only takes about 600 megabytes when compressed. To compress, choose a codec from the list. It will only list codecs you already have installed, so Google "Free Windows Codecs" to get a full array.
While saving, a box will display, and indicate an approximate final file size. If that number starts to get too big, cancel the process and choose a different codec.
Hope this helps.