风车 发表于 2016-5-21 10:46

心机NAG

    嘻嘻,第一次在论坛上发正式帖子,想想还有点小激动呢,嘿嘿,先说好了,我就是个小白,所以分析的程序也是...所以,大神们请略过,只因不想一直做伸手党,所以分享一个自己分析的NAG哈...
分析一个耍心机的NAG,有点小虐心一、程序运行1、运行界面                   出现一个NAG窗口,提示需要去除它2、点击“确定”                3、查壳                   查证是 MASM32写的程序,并没有加壳
二、载入OD分析   (1)NAG初探                咦,这不是一下子就看到了,NAG窗口提示信息了呀,那我直接NOP掉不就完事儿了,简单...真的这样子吗?试一试:
          事实是并没有达到想象的效果,NAG、依然出现了      
(2)NAG再探    1、重新载入OD,点击”分析代码”,遇到第一个CALL 进入看看                           进入看看写了什么                         这里显然的几行代码,看看是在和从地址401000处,XOR操作,我们先看看401000出的代码                            大概就是这个样子的,执行完那个CALL会不会发生变化呢?                        
       那就试试看:                            可以看到EAX = 00401218,也就是说从00401000 - 00401218处代码或者数据做了处理了,查看此时的00401000处的代码【PS:数据肯定是改变了的】                        好吧,果然真的代码变了,也就是说,这里是对00401000 - 00401218处的代码重写了呀   2、从上一个CALL中跳出来以后,下面还有一个CALL呢,进入                        执行分析这段代码,好像和上一段代码类似哎,在修改指令或代码呢?先执行看看啊                        可以看到此处竟然是对该CALL函数入口处做修改???往下执行看看                     确实修改了此处指令,可以看到有一个MessageBoxA被解析出来了,但是参数看不到,比较看到此处修改范围:401011 - 401025
         3、看到指令在CALL EDI(从右边的注释可以看到是调用的是刚才第一个CALL修改的指令),进入看看                        这数据 和 MessageBoxA的参数有什么关系?都是文字,是不是此处会修改数据了?                  
      真的是这样的,好吧
      再往下走,就会执行这个MessageBoxA 输出NAG窗口了
三、去除NAG   解决方案一 修改MessageBoxA 调用参数父句柄值为1:1.修改MessageBoxA第一个参数,即将代码位置40101D处00改为01.但是该位置代码是前面第二阶段代码自修改后写入的值,因此,应该在代码自修指令中对40101D修改的值改为0x5B(即01 XOR 0x5A),即将代码位置为401038处修改为0x5B         这里是子句柄的值为0 ,要修改为1,就不会显示NAG窗口了
   思路:应该去到修改40101D处的代码地方,刚才好像MessgeBoxA被解析出来是在第二个CALL呢      就是在此处修改的:   00401035   ?66:C707 6A00mov word ptr ds:,0x6A    可以数一下,此处写入的是6A,但是这是修改过的值,所以在此修改达不到目的,应该找是哪里修改的6A对应指令地址,即:00401038

2.使用Ctrl+G跳到401038处,选中该处数据,右键选择二进制->编辑->填入5B,确定退出;选中修改过的数据,右键“复制到可执行文件”->在弹出的可执行文件窗口中,右键保存文件   
   OK,执行文件,已经没有NAG窗口了
解决方案二 直接jmp跳过nag窗口调用:      1.401011处汇编(空格),填入指令jmp 0040106A,即MessageBoxA 调用返回后的下一条指令,查看机器码为EB 57,重新加载程序,F7跟进修改自身代码调用CALL 401011,发现在地址00401013处指令对401011的指令进行了修改,查找到该指令在00401016处为写入代码         2.使用Ctrl+G跳到401016处,依次选中该处数据,右键选择二进制->编辑->填入 B1 0D,确定退出;选中修改过的数据,右键“复制到可执行文件”->在弹出的可执行文件窗口中,右键保存文件         EB XOR 5A = B1         57 XOR 5A = 0D         
         OK了,程序同样不会弹出NAG窗口了
嘿嘿,附件哈...


风车 发表于 2016-5-21 10:50

还有啊,刚才怎么回事儿,我发的贴子为啥被删了,求版主明示

榻榻米 发表于 2016-5-21 11:32

风车 发表于 2016-5-21 11:23
没有,那个贴子不是我删的,好像是因为发错板块了被版主处理了

那不对啊应该是移动帖子 而不是删除帖子啊 你现在又重新发帖上传岂不太麻烦了你这种情况可以找Himily版主申诉肯定没问题的。

风车 发表于 2016-5-21 10:48

下面有多出两个图片,不管他了,烦人呢吧

风车 发表于 2016-5-21 11:02

风车 发表于 2016-5-21 10:50
还有啊,刚才怎么回事儿,我发的贴子为啥被删了,求版主明示

好像是刚才发错地方了{:1_937:}

榻榻米 发表于 2016-5-21 11:20

貌似楼主花了80cb买了个悔悟卡把原先那个帖子删了?

风车 发表于 2016-5-21 11:23

榻榻米 发表于 2016-5-21 11:20
貌似楼主花了80cb买了个悔悟卡把原先那个帖子删了?

没有,那个贴子不是我删的,好像是因为发错板块了被版主处理了

风车 发表于 2016-5-21 14:18

榻榻米 发表于 2016-5-21 11:32
那不对啊应该是移动帖子 而不是删除帖子啊 你现在又重新发帖上传岂不太麻烦了你这种情况可以找Himily ...

哦哦,可以酱紫啊,早就知我就不这么麻烦了,我还以为自己违规了呢,谢谢你哈

tail88 发表于 2016-5-21 16:08

学习学习。感谢楼主发教程啊。

lizhipei78 发表于 2016-5-21 20:07

不知道是做什么用的
页: [1] 2
查看完整版本: 心机NAG