MrBills(扫描器)
1.运行软件,因为没有注册功能不去,所以就到注册的地方
一分不少,一寸不多!真正的逆向
搜索字符串--下断点
一分不少,一寸不多!真正的逆向
分析,该字符串有上面有跳转jnz short MrBills.004C1370 (jnz跳转条件:ZF=0)这个跳转能跳过字符串,所以为关键跳转,做好注释和断点,
一分不少,一寸不多!真正的逆向 继续分析跳转条件,pop push均不影响标志位,test al,al是与运算(同时为1才是1)因此可以知道当al为1时就跳转,[xor ebx,ebx为exb置零], 

继续分析,什么影响al的值?之前说过所有call的返回值都存在eax,所以上面的call MrBill.0040714C就也要进入观察,做好注释 
一分不少,一寸不多!真正的逆向
在call下断点,运行--(在窗口进入注册)--进入call--继续
一分不少,一寸不多!真正的逆向
先简单看看代码,有两个
call 00406FD1
test al,al

call 0040701D
test al,al
会影响al的值,即校检不只一个,因此两个都注释一下,

先不进入call,简单运行一下代码到base camp,观察eax变化,在
call 00406FD1
test al,al
之后eax为0

call 0040701D
test al,al
之后eax仍然为0 
一分不少,一寸不多!真正的逆向

经过jmp MrBills.00407069后,eax变成了一个数,这就不关注册已否定关系,运行返回到BASE CAMP(下一条命令)
一分不少,一寸不多!真正的逆向
重新运行,进入第二个call
一分不少,一寸不多!真正的逆向

看到call MrBills.004860C8,思考,要不要进入这个call
一分不少,一寸不多!真正的逆向
*可以通过回车来进入看这个call内容
一分不少,一寸不多!真正的逆向
这个call对eax影响不大,继续往下看到

一分不少,一寸不多!真正的逆向
mov bl,al
call...(运算)
mov...
mov al,bl

作用:
1.可能bl用来暂时保存al,call里会改变al判断是否已注册,在把bl值返回al
2.把值给bl,call会经过一定算法改变bl的值,再把值给回al
一分不少,一寸不多!真正的逆向
因此在mov bl,al指令上面的call也需进入,可能会影响al的值,做好注释和断点,进入

继续F8,一边F8一边观察AL,bl的变化,发现这两条指令改变了bl,再往下还把值给了al,然后就返回到第二层(Base camp2)
 
一分不少,一寸不多!真正的逆向

一分不少,一寸不多!真正的逆向

一分不少,一寸不多!真正的逆向

一分不少,一寸不多!真正的逆向
而且观察下面的可进入2,发现和前面的可进入2是一样的算法,因此先改二,回到可进入2(Base Camp2)进入Base Camp2,回到刚刚改变bl的地方
一分不少,一寸不多!真正的逆向

一分不少,一寸不多!真正的逆向

一分不少,一寸不多!真正的逆向
保存运行

一分不少,一寸不多!真正的逆向

一分不少,一寸不多!真正的逆向

一分不少,一寸不多!真正的逆向

相关文章:

  • 2022-12-23
  • 2021-06-18
  • 2022-01-24
  • 2021-11-29
  • 2022-01-12
  • 2022-12-23
  • 2021-05-13
  • 2022-02-05
猜你喜欢
  • 2021-12-21
  • 2022-01-13
  • 2021-09-11
  • 2021-12-07
  • 2021-07-06
  • 2021-06-18
  • 2021-08-31
相关资源
相似解决方案