First, you should be aware that storing card details is probably illegal, or at least contrary to PCI requirements - unless you have an encrypted database and meet various other stringent security requirements (probably including regular audits).
But if you really want to go ahead with that anyway, it would require modifying the auth.net gateway to store the details in the database instead of processing the payment, and an additional feature would need to be added to the nBill back end to show the list of stored transactions and allow the administrator to pick one for processing (at which point it would need to pick up where it left off). All of this could be packaged up into an installable
nBill extension and it would not require access to any of nBill's encrypted code, nor would it require any hacks to the nBill core (hacking nBill core files is discouraged because it makes upgrading much more difficult).