风车 发表于 2016-5-21 09:55

心机NAG

本帖最后由 风车 于 2016-5-21 10:23 编辑

    嘻嘻,第一次在论坛上发正式帖子,想想还有点小激动呢,嘿嘿,先说好了,我就是个小白,所以分析的程序也是...所以,大神们请略过,只因不想一直做伸手党,所以分享一个自己分析的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:11

程序也分享出来吧光看不练假把式啊。。

花不开但要富贵 发表于 2016-5-21 10:12

楼主你的无私贡献,我很喜欢

花不开但要富贵 发表于 2016-5-21 10:13

我特别喜欢破解,但就是学不会

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

榻榻米 发表于 2016-5-21 10:11
程序也分享出来吧光看不练假把式啊。。

好哒,忘记上传了{:1_905:}

CRoot 发表于 2016-5-21 10:19

求原程序

风车 发表于 2016-6-1 09:50

1047861073 发表于 2016-5-21 10:13
我特别喜欢破解,但就是学不会

慢慢来,万事开头难嘛

风车 发表于 2016-6-1 09:52

CRoot 发表于 2016-5-21 10:19
求原程序

源程序已上传哦
页: [1]
查看完整版本: 心机NAG