码迷,mamicode.com
首页 > 其他好文 > 详细

第八章: abex'crackme#2

时间:2020-06-18 21:56:39      阅读:51      评论:0      收藏:0      [点我收藏+]

标签:好的   解释器   加密   unicode   程序   lazy   mamicode   技术   src   

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

标签:好的   解释器   加密   unicode   程序   lazy   mamicode   技术   src   

原文地址:https://www.cnblogs.com/Rev-omi/p/13159985.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!