加密与解密(逆向常用API)

    xiaoxiao2021-04-14  51

        原地址戳我。 转自鱼C工作室。      在逆向中,我们常常需要从一些关键的API函数入手,大部分新手对此望而生畏!       小甲鱼在这里给大家整理出逆向中需要掌握和注意的API函数及其用法,希望大家喜欢^_^ DialogBoxes类型常用APIs(通常在注册界面获取) DialogBoxParamA GetDlgItem GetDlgItemInt GetDlgItemTextA GetWindowTextA GetWindowLongDialogBoxParamA' 函数功能: 该函数根据对话框模板资源创建一个模态的对话框。在显示对话框之前,函数把一个应用程序定义的值作为WM_INITDIALOG消息的IParam参数传到对话框过程,应用程序可用此值来初始化对话。 函数原型: int DialogBoxParam( HINSTANCE hlnstance, LPCTSTR IpTemplateName, HWND hWndParent, DLGPROC IPDialogFunc, LPARAM dwlnitParam ); 复制代码 参数: hlnstance:标识一个模块的事例,该模块的可执行文件含有对话框模板。 IpTemplateName:标识对话框模板。此参数可以指向一个以NULL结尾的字符串的指针,该字符串指定对话框模扳名,或是指定对话框模板的资源标识符的一个整型值。如果此参数指定了一个资源标识符,则它的高位字一定为零,且低位字一定含有标识符。一定用MAKEINTRESOURCE宏指令创建此值。 hWndParent:指定拥有对话框的窗口。 IpDirlogFunc:指向对话框过程的指针。 dwlnitaram:指定传递到WM_INITDIALOG消息的IParam参数中的对话框过程的值。 返回值 如果函数调用成功则返回值为在对函数EndDialog的调用中的nResult参数,该EndDialog函数用于中止对话框。 如果函数调用失败,则返回值为C1。若想获得错误信息,请调用GetLastError函数。 GetDlgItem 函数功能 该函数检索指定的对话框中的控件句柄。   函数原型 HWND GetDlgItem(HWND hDlg, int nlDDlgltem); 复制代码 参数 hDlg:标识含有控件的对话框。 nlDDlgltem:指定将被检索的控件标识符。y 返回值 如果函数调用成功则返回值为给定控件的窗口句柄。 如果函数调用失败,则返回值为NULL,表示为一个无效的对话框句柄或一个不存在的控件。 若想获得更多错误信息,可以调用GetLastError函数。 GetDlgItemInt   函数功能 获取控件中里面字符串并转换成int类型返回。 函数原型 UINT GetDlgItemInt( HWND hDlg, int nIDDlgItem, BOOL *lpTranslated, BOOLbSigned ); 复制代码 参数 hDlg:对话框的句柄。 nIDDlgItem:标识哪个文本将被转换。 lpTranslated:表示成功或失败(TRUE表示成功,FALSE表示失败)。如果此参数为NULL,则该函数没有返回成功或失败的信息。 bSigned:TURE表示有符号数,FALSE表示无符号数。 返回值 如果函数成功转换,返回转换的字符个数。 小甲鱼备注 第三个参数,主要是为了接收错误信息的。可能出现的错误信息有: ID无效,并且超过指定大小。 比如说ID为12345677,这个就不行。 还有就是输入不能解析为一个int类型的,比如输入:"bvbvbvbv","3.5666", 当然后面可以解析为一个浮点型,在这里取得的值为3,但是还是会有错误信息。 如果不指定第二个参数,就不会获得任何错误信息。 对输入的判断是否可以解析为int类型或者是否有效,很有用的,我们经常有这个参数来判断用户的输入是否合法 第四个参数,默认的为true,主要是针对"-123",像这样的字符,它可以把前面的"-"解析为负号,那么就是标准的int类型了,如果设置为false,那么它不可以有负数,因为在这里的"-"号,被认为是不合法的。 GetDlgItemTextA 函数功能 调用这个函数以获得与对话框中的控件相关的标题或文本。GetDlgItemText成员函数将文本拷贝到lpStr指向的位置并返回拷贝的字节的数目。   函数原型 int GetDlgItemText( HWND hDlg, int nID, LPTSTR lpStr, int nMaxCount ); 复制代码 参数 hDlg:句柄啊句柄~_~ nID:指定了要获取其标题的控件的整数标识符。 lpStr:指向要接收控件的标题或文本的缓冲区。 nMaxCount:指定了要拷贝到lpStr的字符串的最大长度(以字节为单位)。如果字符串比nMaxCount要长,它将被截断。   返回值 如果函数调用成功,返回值为拷贝到缓冲区中的 TCHAR 字符个数(不包括结束空字符)。 如果函数调用失败,返回值为 0 。要获取更多错误信息,请调用 GetLastError 函数。 小甲鱼备注* 如果字符串的长度大于缓冲区的长度,则会被截断,并以空字符结束。   GetWindowTextA : 函数功能 该函数将指定窗口的标题条文本(如果存在)拷贝到一个缓存区内。如果指定的窗口是一个控件,则拷贝控件的文本。但是,GetWindowText不能接收其他应用程序中控件的文本。 函数原型 Int GetWindowText( HWND hWnd, LPTSTR lpString, Int nMaxCount); 复制代码 参数 hWnd:带文本的窗口或控件的句柄。 IpString:指向接收文本的缓冲区的指针。 nMaxCount:指定要保存在缓冲区内的字符的最大个数,其中包含NULL字符。如果文本超过界限,它就被截断。   返回值 如果函数成功,返回值是拷贝的字符串的字符个数,不包括中断的空字符;如果窗口无标题栏或文本,或标题栏为空,或窗口或控制的句柄无效,则返回值为零。若想获得更多错误信息,请调用GetLastError函数。   小甲鱼备注 函数不能返回在其他应用程序中的编辑控件的文本。 GetWindowLong "   函数功能 该函数获得有关指定窗口的信息,函数也获得在额外窗口内存中指定偏移位地址的32位度整型值。 函数原型 LONG GetWindowLong( HWND hWnd, int nlndex ); 复制代码 参数 hWnd:窗口句柄及间接给出的窗口所属的窗口类。 nlndex:指定要获得值的大于等于0的值的偏移量。有效值的范围从0到额外窗口内存空间的字节数一4例如,若指定了12位或多于12位的额外类存储空间,则应设为第三个32位整数的索引位8。 要获得任意其他值,指定下列值之一:   GWL_EXSTYLE(-20);获得扩展窗口风格。   GWL_STYLE(-16):获得窗口风格。   GWL_WNDPROC(-4):获得窗口过程的地址,或代表窗口过程的地址的句柄。必须使用CallWindowProc函数调用窗口过程。   GWL_HINSTANCE(-6):获得应用事例的句柄。   GWL_HWNDPARENT(-8):如果父窗口存在,获得父窗口句柄。   GWL_ID(-12):获得窗口标识。   GWL_USERDATA(-21):获得与窗口有关的32位值。每一个窗口均有一个由创建该窗口的应用程序使用的32位值。   在hWnd参数标识了一个对话框时也可用下列值:   DWL_DLGPROC(4):获得对话框过程的地址,或一个代表对话框过程的地址的句柄。必须使用函数CallWindowProc来调用对话框过程。   DWL_MSGRESULT(0):获得在对话框过程中一个消息处理的返回值。   DWL_USER(8):获得应用程序私有的额外信息,例如一个句柄或指针。 返回值 如果函数成功,返回值是所需的32位值;如果函数失败,返回值是0。若想获得更多错误信息请调用 GetLastError函数。 小甲鱼备注 通过使用函数RegisterClassEx将结构WNDCLASSEX中的cbWndExtra单元指定为一个非0值来保留额外类的存储空间。
    转载请注明原文地址: https://ju.6miu.com/read-670545.html

    最新回复(0)