|
[求助]反汇编中变量如何初始化?
push将值放到变量有两步操作,第一步先用push将值临时存入堆栈,再用pop将存入堆栈的值放入变量里。 |
|
|
|
[求助]*(_DWORD *)(a1 + 1544) = 12 怎么理解
可以将这一句拆分成三步开来会比较好理解: a1 = a1 + 1544; // 第一步先将al的值加上1544 _DWORD * p = (_DWORD *)a1; // 第二步将al的值类型强制转换为_DWORD*类型指针 *p = 12; // 往这个内存指针写入一个_DWORD类型整数"12" |
|
[求助]*(_DWORD *)(a1 + 1544) = 12 怎么理解
这一句的整体意思就是:将al的值加上1544,然后将这个值强制转换为整数指针,并往这个指针指向的地址内存写入一个"12"的整数值。 |
|
|
|
[原创]MASM之ShellCode框架编写[合并帖]
将楼主的两个主题贴合并成一个,方便管理。 |
|
[求助]repnz scasb的理解
是的。。。。 |
|
[求助]repnz scasb的理解
repnz指令循环执行特定搭配的指令,直到zf标志位置位或ecx为0,才退出循环执行。 scasb/scasw/scasd指令是串比较指令,它的作用是将[edi]中的数据以byte/word/dword类型和al/ax/eax进行比较。并edi+1/edi+2/edi+4。如果[edi]中的数据和al/ax/eax相等,则zf标志位置位。 一般来说,这个指令比较常用来计算某串字符串的长度而使用得多。如下例子代码用repnz scasb计算某串字符串的长度: mov edi,offset lpszString mov ecx,-1 xor eax,eax repnz scasb not ecx dec ecx ;当代码执行到这一行时,ecx==lpszString字符串的长度。 |
|
汇编翻译为C代码可以吗?
是的,C语言中没有跳出两重循环的语句,只有使用goto或者如果d之后是函数返回的话也可以直接使用return直接退出。 |
|
汇编翻译为C代码可以吗?
是的,你的表示方法才对。 |
|
|
|
[求助]关于反汇编的语言问题
不一定,带中括号里的值可以是内存地址,也可以是数值。这主要看对这个地址(数值)操作指令是什么类型的指令才能判断中括号的值是内存地址还是数值。如果指令是属于操作内存地址的,带中括号中的值就是内存地址,如果指令是操作指针的数值的,那带中括号的数值可能是指针地址,也可能是数值。如你上面的push指令操作带中括号的值时,中括号的值就只能是内存地址,不能是数值。如lea eax,[esi+1c]指令时,带中括号的数值可以是内存地址,也可以是数值。 |
|
[求助]使用VC++6编译汇编,语法高亮的相关问题。。
应该说,没多少人研究这个。写汇编还是用Masm32+RadAsm/EditPlus/MasmPlus等这几个编辑工具写比较好。 |
|
[求助]test eax,eax 后面跟 jl 指令是什么意思?
就是测试正负符号,jl如果Eax < 80000000h则不跳,否则就跳。 |
|
[求助]你看看我这个自动单击MessageBox对话框中的Yes按钮的代码,哪里不对?
Dim i As Long Dim Value As Long Value = 5 For i = 1 To 16 Value = Value * 2 Next i Value = Value Or 5 MsgBox Hex(Value) |
|
[求助]你看看我这个自动单击MessageBox对话框中的Yes按钮的代码,哪里不对?
只要你的操作涉及到窗口区域大小范围的就需要用到它。 |
|
[求助]求编一个破解狗的DLL
论坛不允许申请破解或变相破解什么的。 |
|
[求助]你看看我这个自动单击MessageBox对话框中的Yes按钮的代码,哪里不对?
WM_LBUTTONUP and WM_LBUTTONDOWN消息的lParam参数代表着窗口的xy座标,其中lParam参数的高16位代表y座标,低16位代表x座标。xy座标的值组合成lParam的32位值算法就:(y ^ 16) or x计算出来的。所以x = 5和y = 5的座标值就是 (5 ^ 16) or 5 = &H50005。其实x = 5和y=5的座标只是我随手选的一个座标,你也可以随便选一个座标点,只要你选的座标点xy不会超过Button的Rect大小范围即可,而要知道Button的Rect大小只需使用GetClientRect函数就可以获取到。 |
|
[求助]你看看我这个自动单击MessageBox对话框中的Yes按钮的代码,哪里不对?
是的,就是byref和byval的问题。 |
|
[求助]你看看我这个自动单击MessageBox对话框中的Yes按钮的代码,哪里不对?
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal szClsName As String, ByVal szWndName As String) As Long Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hWnd As Long, ByVal hClientWnd As Long, ByVal szClsName As String, ByVal szWndName As String) As Long Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Private Declare Function MessageBox Lib "user32.dll" Alias "MessageBoxA" (ByVal hWnd As Long, ByVal szMessages As String, ByVal szMsgTitle As String, ByVal nType As Long) As Long Const WM_LBUTTONDOWN = &H201 Const WM_LBUTTONUP = &H202 Const vbYesNo = 4 Private Sub Timer2_Timer() Dim hWnd2 As Long Dim hWnd3 As Long Dim hWnd4 As Long hWnd2 = FindWindow("#32770", "标题") hWnd3 = FindWindowEx(hWnd2, 0, "Button", "是(&Y)") 'hWnd4 = GetWindowLong(hWnd3, GWL_ID) '取按钮ID If hWnd3 Then m = SendMessage(hWnd3, WM_LBUTTONDOWN, 0, &H50015) '发送按钮按下 n = SendMessage(hWnd3, WM_LBUTTONUP, 0, &H50015) 'Debug.Print m, n End If End Sub Private Sub Command2_Click() Timer2.Enabled = True MessageBox Form1.hWnd, "这里是内容", "标题", vbYesNo Timer2.Enabled = False End Sub |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值