zoukankan      html  css  js  c++  java
  • 第8章: 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中的值.

  • 相关阅读:
    RSA 与 DSA
    atlassian
    Cygwin
    windows下编写的Shell脚本在Linux下运行错误的解决方法
    NSKeyValueObserving(KVO)
    UIBezierPath 的使用介绍
    Objective
    Objective-C 内存管理原则
    Mac OSX 快捷键&命令行总览
    浅析Objective-C字面量
  • 原文地址:https://www.cnblogs.com/Rev-omi/p/13159985.html
Copyright © 2011-2022 走看看