Which core file is responsible for gravatars?

I still think Rarst’s answer is better and that there is no need to remove Gravatar links in the core WordPress files, but …

The files you are looking for are:

/wp-admin/credits.php
/wp-admin/options-discussion.php
/wp-content/plugins/akismet/akismet.js
/wp-includes/pluggable.php
/wp-includes/post-template.php

Since you may need to do this every time WordPress updates, you could search the WordPress files for the word ‘gravatar’. Most good text editors make it possible to search across all files in a directory and its sub directories. You only need to search in PHP and JavaScript files.

Here is the results I get:

----------------------------------------
Find 'gravatar' in 'C:\WordPress\WordPress\wp-admin\credits.php' (11/19/2013 4:11:29 AM; 11/19/2013 4:11:29 AM):
C:\WordPress\WordPress\wp-admin\credits.php(113): $gravatar = is_ssl() ? 'https://secure.gravatar.com/avatar/' : 'http://0.gravatar.com/avatar/';
C:\WordPress\WordPress\wp-admin\credits.php(149):               echo '<img src="' . $gravatar . $person_data[1] . '?s=" . $size . "" class="gravatar" alt="' . esc_attr( $person_data[0] ) . '" /></a>' . "\n\t";
Found 'gravatar' 5 time(s).
----------------------------------------
Find 'gravatar' in 'C:\WordPress\WordPress\wp-admin\options-discussion.php' (11/19/2013 4:11:50 AM; 11/19/2013 4:11:50 AM):
C:\WordPress\WordPress\wp-admin\options-discussion.php(176): <?php // the above would be a good place to link to codex documentation on the gravatar functions, for putting it in themes. anything like that? ?>
C:\WordPress\WordPress\wp-admin\options-discussion.php(221):    'gravatar_default' => __('Gravatar Logo'),
Found 'gravatar' 3 time(s).
----------------------------------------
Find 'gravatar' in 'C:\WordPress\WordPress\wp-content\plugins\akismet\akismet.js' (8/2/2013 9:33:47 AM; 8/2/2013 9:33:47 AM):
C:\WordPress\WordPress\wp-content\plugins\akismet\akismet.js(92):       // It changes based on if there is a gravatar present
Found 'gravatar' 1 time(s).
----------------------------------------
Find 'gravatar' in 'C:\WordPress\WordPress\wp-includes\pluggable.php' (11/19/2013 4:12:12 AM; 11/19/2013 4:12:12 AM):
C:\WordPress\WordPress\wp-includes\pluggable.php(1675):         $host="https://secure.gravatar.com";
C:\WordPress\WordPress\wp-includes\pluggable.php(1678):             $host = sprintf( "http://%d.gravatar.com", ( hexdec( $email_hash[0] ) % 2 ) );
C:\WordPress\WordPress\wp-includes\pluggable.php(1680):             $host="http://0.gravatar.com";
C:\WordPress\WordPress\wp-includes\pluggable.php(1684):         $default = "$host/avatar/ad516503a11cd5ca435acc9bb6523536?s={$size}"; // ad516503a11cd5ca435acc9bb6523536 == md5('[email protected]')
C:\WordPress\WordPress\wp-includes\pluggable.php(1687):     elseif ( !empty($email) && 'gravatar_default' == $default )
C:\WordPress\WordPress\wp-includes\pluggable.php(1689):     elseif ( 'gravatar_default' == $default )
Found 'gravatar' 6 time(s).
----------------------------------------
Find 'gravatar' in 'C:\WordPress\WordPress\wp-includes\post-template.php' (11/19/2013 4:12:26 AM; 11/19/2013 4:12:26 AM):
C:\WordPress\WordPress\wp-includes\post-template.php(1357):  * @return string gravatar, user, i18n formatted datetimestamp or localized 'Current Revision'.
C:\WordPress\WordPress\wp-includes\post-template.php(1370):     $gravatar = get_avatar( $revision->post_author, 24 );
C:\WordPress\WordPress\wp-includes\post-template.php(1379):         $gravatar,
Found 'gravatar' 3 time(s).
Search complete, found 'gravatar' 18 time(s). (5 file(s)).

I searched on the trunk version of WordPress. You would need to search on a local copy of the WordPress files on your web server.

This search indicates that only the \wp-admin\credits.php file needs to be changed. The get_avatar() function is not used there. To make the least impact, you might just change the urls used in line 113:

$gravatar = is_ssl() ? 'https://secure.gravatar.com/avatar/' : 'http://0.gravatar.com/avatar/';

To urls that are local:

$gravatar = is_ssl() ? 'https://example.com/avatar/' : 'http://example.com/avatar/';