Why is my block not showing up on the Blocks page?
Here is an example for hook_block_info found in examples module. This defines the existence of block and this will make the block show up in the block page. You could use hook_block_configure to provide additional fields for you block in block page and save the it using hook_block_save.

function example_block_info() {

  $blocks['example'] = array(
 'info' =&gt; t('Example: configurable text string'),
 'cache' =&gt; DRUPAL_CACHE_PER_ROLE,
 'status' =&gt; TRUE,
 'region' =&gt; 'sidebar_first',
 'visibility' =&gt; BLOCK_VISIBILITY_LISTED, 
 'pages' =&gt; 'node/*',
 );

return $blocks;
}