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

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

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

图片

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

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

第三个函数是重点,

图片 

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

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

下面的跳转就很诡异。

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

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

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

最后一个call ,原子--

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





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

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

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

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

 

posted @   穷到底  阅读(109)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示