get amplitude difference via cross correlation?
You divide the peak of the correlation by the energy of $A$.

$B$ is a scaled version of $A$, with some noise added to it.  Thus, the equation for the cross-correlation peak is-

$ A * B' = A * (kA' + n') = k(A*A') + A*n'$

Let's ignore the noise term since we cannot predict its value.  The remaining term, $k(A*A')$, is the energy of $A$ times the scaling factor.  Thus, you simply need to divide the correlation peak by the energy of $A$ (which you know), and you have the scaling factor.  The noise term will introduce some error into the result, but there isn't really anything you can do about that other than reducing the noise or increasing the signal power in $B$.

An example- if $A$ is [1 2 1], then the energy is $1^2 + 2^2 + 1^2 = 6$.  If $B$ is twice $A$ ([2 4 2], then the cross correlation peak would occur when they were lined up, which would give us $1*2 + 2*4 + 1*2 = 12$.  Dividing the peak (12), by the energy of $A$ (6), gives a factor of 2, which is the correct result.