朱朱你堕落了 发表于 2019-12-30 22:26

求助个vm中nand的小问题、

本帖最后由 朱朱你堕落了 于 2020-1-1 09:18 编辑

原贴:https://www.52pojie.cn/thread-259831-1-1.html
我找到了这个教程,但是看不太明白,感觉爆破就是所谓的xx门吧。


这个软件,先打开一个例子图,任意哪个图都可以,如下:


它的限制是不能打印出来:




这个被VM了,通过找nand,应该是这里:

00441E6C   .21D0          and eax,edx

现在我下条件断点:
00441E6C   .21D0          and eax,edx                              ;eax==0x40
之后看edx的值。。。

现在的问题是:
我感觉这个edx的值是FFFFFDB9时,这个应该是比较像的。如下图:



走过这行00441E6C   .21D0          and eax,edx 到了00441E6E pushad时,修改默认的eax=0为0x40,
禁用条件断点,结果程序就崩溃了,那说明这样修改是不对的。

那就继续测试别的edx的值,放过上面的这个, 测试如果当edx=0x246时,如下:




走过这行00441E6C   .21D0          and eax,edx 到了00441E6E pushad时,修改默认的eax=0x40为0时,
就能导出来。说明这时的修改才是对的。。。

那么问题来了,
这个xx门:00441E6C > .21D0          and eax,edx
貌似应该是这样:0x40 and ~eflags
那么eax应该等于0x40,而edx应该是eflags的not值,那应该是0xFFFFxxxx,因为不知道原版eflags的值,
如果假设原版的eflags是x286,0x216等等的不知道的值,那么~eflags的值就应该是0xFFFFxxxx,


所以我才感觉应该是edx=FFFFFDB9时,这样才符合所谓的xx门,但是如上面所说,修改后崩溃了,
而在edx=0x246时,这时修改即成功了。。。

这让人彻底搞不明白了,求助大佬解惑,1000CB悬赏贴:https://www.52pojie.cn/thread-1083236-1-1.html

程序:
https://www.lanzouj.com/i8cxz7a

朱朱你堕落了 发表于 2019-12-30 22:34

原贴教程中修改的不是这个xx门,因为看不太明白他的,所以我直接修改xx门吧。

魔弑神 发表于 2019-12-30 22:55

246=efl=zf=1
不懂vm 是我自己的理解

朱朱你堕落了 发表于 2019-12-30 23:47

魔弑神 发表于 2019-12-30 22:55
246=efl=zf=1
不懂vm 是我自己的理解

你太谦虚了。

朱朱你堕落了 发表于 2019-12-31 11:05

魔弑神 发表于 2019-12-30 22:55
246=efl=zf=1
不懂vm 是我自己的理解

还不知道原程序eflags是不是0x246,必竟也没有原版无壳啊(当然没有,哈哈!),就假设是0x246,

虽然246的zf=1, 但是在xx门中, ~246=FFFFFDB9,那应该是and(0x40, 0xFFFFFDB9)啊。这时修改应该是对的,但是却不对,我的纠结点在这里。。。现在成了and(0x40, 0x246)了,这明显不对吧,但是证明却对了,事情完全反过来了,我弄不明白了。

无闻无问 发表于 2020-1-2 20:59

朱朱你堕落了 发表于 2019-12-31 11:05
还不知道原程序eflags是不是0x246,必竟也没有原版无壳啊(当然没有,哈哈!),就假设是0x246,

虽然24 ...

小白见到VMP的就仍回收站了,不过,我觉得是eax的值是有作用的……因为这段代码在重复执行,应该是个循环或存在某种检验……

朱朱你堕落了 发表于 2020-1-2 21:29

无闻无问 发表于 2020-1-2 20:59
小白见到VMP的就仍回收站了,不过,我觉得是eax的值是有作用的……因为这段代码在重复执行,应该是个循环 ...

我已经悬赏到2000CB了,:lol

https://www.52pojie.cn/thread-1084427-1-1.html
页: [1]
查看完整版本: 求助个vm中nand的小问题、