|
一个MESSAGEBOX有这么难吗??(其实就是想做一个带导出函数的EXE文件而已)
去掉那个“L”就行了 |
|
|
|
[求助]请问,谁有winsock2.h和ws2_32.lib的有效版本,为什么我的一个#include <winsock2.h>就会报58个错误呢
是的。windows.h里已经包含了winsock2.h了。 |
|
[己解决]push dword ptr ss:[ebp+14]如何看
第一、你的计算方法是错的。在计算的时候不必加入23,直接0012E98C+14=0012E9A0才是正确的地址。 第二、DWORD只是一个双字节类型,他的大小范围是四个字节范围。也就是地址前面的四个字节才是属于一个DWORD类型,后面的就不属于那个DWORD的范围了。 xxxxxxxx BC BB AF B9 A4 BE DF 00 // 只有前面的四个字节才是一个DWORD |
|
[求助]关于对话框和窗体。。。
程序里面没有使用CreateWindowEx创建窗口不奇怪,因为可以使用资源文件创建对话框作主窗口。不过,应该不可能没有回调函数的。就是使用资源对话框,也不可能没有回调函数的。 |
|
[己解决]PEid疑惑求助
V偏移是PE文件载入内存后的偏移,R偏移是磁盘文件的原始偏移。 |
|
[求助]为什么这个dll反汇编一保存就不起作用?
修改后可以再调试一下看看修改后的程序哪里有问题不就行了吗? |
|
汇编里面如何添加图片?
创建图像那个已经说的很清楚了,就是先在程序里添加一个图像资源。再用LoadBitmap函数载入该图像。然后再在程序注册窗口初始化WndClassEx结构时,用CreatePatternBrush函数创建一个图像刷子,传给WndClassEx结构的hbrBackground成员就行了。如果你创建的是一个对话框,你可以先用CreatePatternBrush函数创建一个图像刷子,然后再在WM_CTLCOLORDLG消息中将该刷子返回给系统就行了。 修改字体颜色可以使用SetTextColor函数就行了。 |
|
[求助]ChrW(xxx)这个字符怎么转为中文?
将下面代码粘贴到*.html文件中就可以看到中文了。 <html> <bady> <SCRIPT LANGUAGE="VBScript"> MsgBox (ChrW(12304) & ChrW(31995) & ChrW(32479) & ChrW(25552) & ChrW(31034) & ChrW(12305) & ChrW(25968) & ChrW(25454) & ChrW(20445) & ChrW(23384) & ChrW(25104) & ChrW(21151) & ChrW(65281)) </SCRIPT> </bady> </html> |
|
|
|
汇编里面如何添加图片?
1、可以使用CreatePatternBrush函数创新一个图像刷子传给WndClassEx.hbrBackground参数创建窗口就行了。如: invoke LoadBitmap,hInstance, offset szBitmapName mov hBtimap,eax invoke CreatePatternBrush,eax mov hBrush,eax mov WndClassEx.hbrBackground,eax 最后,程序退出时不要忘了删除该刷子。 2、添加mid音乐可以参考这篇文章: http://bbs.pediy.com/showthread.php?t=19415&highlight=mid |
|
[求助]不明白这个指令什么意思:repne scas byte ptr es:[edi]
这个是最经典的求字符串长度的代码。 33C0 xor eax, eax F2:AE repne scas byte ptr es:[edi] ; 这里不明白。 扫描字符串ES:[EDI]中的AL字节值,遇到AL值停止 |
|
使用od的问题
只要显示器窗口不够大,是谁都没有办法可以把这么长的一段代码全部显示完全的。除非换成更大的显示器才有可能。 |
|
[求助]如何将一段01编码的机器指令转换成容易看懂的汇编指令??
OllyDBG就可以,首先将二进制数转成十六进制数(可以使用Windows的计算器转换)。然后将十六进制数拷贝到OllyDBG里就可以直接看到转换后的汇编代码。 |
|
[求助]Win32汇编 怎么样调用Sdk中的函数
如果知道函数的参数类型和个数,是可以自己定义一个accctrl.inc文件的。如果函数太多,你也可以试Masm32\Tools\l2inc目录中的l2inc.exe程序可以为lib库文件生成一个*.inc文件。 |
|
[求助]关于MOV EAX,[EBP+00].中的疑惑!~
看了半天,没有看出你想问什么。一般来说,[ebp+xx]取得的值都是函数传入的参数。[ebp-xx]取得的值都是函数内部的局部变量值。要取得[ebp+xx]的值可以追到函数进入点处找到。要取得[ebp-xx]的值就只有在函数内部动态调试取得了。 |
|
[求助]如何在动态库中能调用主程序中的函数
只有先注入要调用的Exe领空,才能调用。 |
|
大家帮我看看,我用DELPHI写的获取CRC的256个基数怎么不正确呢
procedure TForm1.Button1Click(Sender: TObject); VAR i,j,crc:integer; crc32tbl:array[0..255] of dword; begin for i:=0 to 255 do begin crc:=i; for j:=0 to 7 do begin if (crc and 1)=1 then begin crc:=(crc shr 1) xor $EDB88320; // 将shl改成shr end else begin crc:=crc shr 1; // 将shl改成shr end; end; crc32tbl[i]:=crc; end; for i:=0 to 255 do begin memo1.Lines.add(format('%x',[crc32tbl[i]])); end; end; |
|
[求助]一个汇编语句的进制问题,很间单,告诉我一下
eax等寄存器都是程序用来暂时寄存数据的地方,他的数据有没有用要看当前程序对他的使用才知道是不是有用的,所以调试器之类的软件是没办法知道eax等寄存器的值是不是未知还是什么,当然也就没有什么统一显示的方法了。 |
|
[求助]一个汇编语句的进制问题,很间单,告诉我一下
DS:[006E9C4D]=30 ('0') 意思是ESI的十六制值为31 换算成ASCII字符为0 AL=00 AL值为00 这里的AL值也指ASCII字符吗? 你在这里看到应该是OD的提示,这里的提示是告诉你当你的OD执行到mov al,byte ptr [esi]这条指令时,[esi]的内存值是[006E9C4D],这个内存保存着的第一个值就是ASCII码的'0',而在这时你只是执行到这条指令的位置,这条指令还没有被执行,所以al的值是未知的,他可能是00,也可能是xx,而当你再用F8走过这条指令时,al应该是等于ASCII码的'0'的,也就是十六进制的0x30。 DS:[006E9C4D]=31 ('1') 意思是ESI的十六制值为31 换算成ASCII字符为1 CL=0B 这里CL的值如果按上面的解释就不成立了,那这里的值到底是个什么进制的呢?或者说是个什么类型的值呢? 这里和上面的说法是一样的,只是指令取出的ASCII码是[esi+1]处的内存值,也就是内存中的[006E9C4E](因为[esi]==[006E9C4D],所以加1就是006E9C4E)ASCII码中的'1'传给cl,但你看到的这一句和上面一样,指令还没有被执行,所以CL的值是未知,你要知道CL的值,只要再F8走一步就可以看到CL应该是等于ASCII码的'1',也就是十六进制的0x31 00405656 884C24 10 MOV BYTE PTR SS:[ESP+10],CL 这里面的10又不是什么进制? 在OD里,默认显示的整数值都是十六进制的。 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值