昨天中午壳终于被脱掉了,但是问题来了

代价就是不能调试,其实也不算什么代价,这个程序脱壳之后,不用调试期,在虚拟机里面单独运行都崩溃。

但是看代码,看得好晕。。。

图片

这里,第一个call先malloc了一块空间,然后把字符串memmove到了那块空间,扔到了一个全局指针上,然后返回了

第二个call给某个全局变量做了一个原子++操作,很恶心,

第三个函数是重点,

图片 

第一个 call ,给局部变量初始化,

第二个 call 就是激动人心的时刻,CreateFileW 了,方式是 OPEN_EXISTING 和 FILE_ATTRIBUTE_NORMAL 。在函数里面,CreateFileW之后,如果成功的话,这个函数返回1,不成功的话,这个函数返回0

下面的跳转就很诡异。

操了,如果上面CreateFileW成功就转入红色,否则就走绿色出去。

但是这里第三个 call ,直接就把CreateFileW的 HADNLE 关闭了,为什么要关闭呢,难道就是为了要弄出一个文件来么。

倒数第二个call ,根据前面得到的一个结果,给全局指针赋值。

最后一个call ,原子--

我就不明白,这破逼玩意,折腾个什么劲,打开了文件,又关闭文件。





然后上面的主函数直接进右边,一系列函数调用了。。。。

这些是否重要,都尚且未知,但是不一步一步走下去,真的不知道万一丢了哪个怎么办,而且还不能动态跟踪。。。

好累。。。静态分析汇编代码是最累的。。。。

没有源码,没有符号,毛提示都没有。。。。我继续。。。。 

 

posted @ 2014-10-20 16:43  穷到底  阅读(108)  评论(0编辑  收藏  举报