第八章: abex'crackme#2

Posted rev-omi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第八章: abex'crackme#2相关的知识,希望对你有一定的参考价值。

VB文件的使用名为MSVBVN60.DLL,是VB的专用引擎.应注意,VB语言使用的是Unicode字符串

使用VB文件可以编译为本地代码(Native-Code)伪代码(Pseudo-code).

本地代码使用易于调试器解析IA-32指令;伪指令是一种解释器(interpreter)语言,它使用由VB引擎实现虚拟机并可自解析的指令(字节码).

想要准确解析VB的伪代码需要分析VB引擎并实现模拟器.伪代码的好处是方便移植.

技术图片

 

 

 在401238的地址上,push指令把 RT_MainStruct结构体 的地址压入栈.这个结构体中存储着其它结构体的地址(国外大佬分析出的).

另外,上面红字的地方,是一个间接(indirect)调用法.

经多次调试可以发现VB程序经常对字符串进行移动,每次运行的地址都会不同.

技术图片

 

 

 下图中,push的三个地址,其中两个的地址( 0019F290 , 0019F280 ) +8 即可得到存储着之前计算好的值 和 加密的值.

19F290中的8,经过初步调试,感觉像是用作测试,在程序运行的过程中,8是否改变.

技术图片

 

 后期经过调试发现,地址19F238在函数中,会取地址+8中的值.

 

以上是关于第八章: abex'crackme#2的主要内容,如果未能解决你的问题,请参考以下文章

php第八章测试题求解

单机版的《魔兽争霸3》第八章的霜之哀伤在呢?这个任务怎么过

第八章 需求分析

操作系统概念笔记——第八章:内存管理

CSAPP:第八章 异常控制流2

第八章