|
[求助]谁能教下我二进制 十六进制??说详细点
简单来说,我们大家平时在使用的计数方式是十进制的计数方式,为什么我们大家比较熟悉使用十进制呢,据闻是因为人类的两个手只有十个手指头的关系。比如:我们在计数的时候,如果没有什么算盘之类的东西,最简单的就是使用手指头来计数,因为一般普通正常的人的手指头都有十个,可以放置的数也就只有十个,所以我们在计数时就是以十为单位进行计数,0~9为一个单位、10~19为下一个进制单位(读作1、2、3、4、5、6、7、8、9、10、11、...),这种计数方式统称为十进制计数方式。从前面来说,你应该已经明白了十进制计数的意思了吧。二进制和十六进制也是如此,只不过二进制是以2个手指头为一个单位来计数(0~1为一单位、2~3为下一个进制单位,也可以读作0、1、10、11、100、101、110、111、1000、1001、...),十六进制是以16个手指头为一个单位来计数(0~15(0~F)为一个单位,15~31(10~1F)为下一下进制单位,也可以读作1、2、...、A、B、C、D、E、F、10、11、...、1A、1B、...等等)。从上面的例子中你可以看到,十进制的数最大不会超过9、超过9的时候就以1和0作为进位再从新计数。二进制和十六进制也一样。二进制的数最大不会超过1,超过2的时候就以1和0作为进位再从新计数。十六进制的数最大也不会超过F、超过F的时候也是以1和0作为进位再从新计数。 |
|
[讨论]您写代码的效率几何?
希望大家讨论归讨论,不要互相攻击,这个贴子锁了。 |
|
[求助]RADASM
什么意思?? |
|
[求助]请问下createwindow函数的正确钩法
要修改类别应该钩RegisterClass(Ex)函数才对。而钩CreateWindow(Ex)时,这个函数是从“已注册的类名”中创建窗口,并不是创建一个新类名,你这时修改他的类名时已经没用了,修改后会因为你的类名没有经过RegisterClass(Ex)函数的创建当然会出现找不到类名了。 |
|
[求助]基址和偏移
还有,汇编不支持mov xxx,addr xxxxx的操作。你应该将mov xxx,addr xxxxx改成lea xxx,xxxxx才对 |
|
[求助]基址和偏移
invoke ReadProcessMemory,hJinchengID,offset XueliangDZ,addr @szBuffer,2,NULL mov eax,addr @szBuffer add eax,28 mov addr @szBuffer,eax ; 下面的两个操作不太明白你想干什么,你即读取@szBuffer的内容,又将读取的内容保存在@szBuffer中,这样的操作等于没什么意义的操作。 invoke ReadProcessMemory,hJinchengID,addr @szBuffer,addr @szBuffer,2,NULL mov eax,addr @szBuffer add eax,248 mov addr @szBuffer,eax invoke ReadProcessMemory,hJinchengID,addr @szBuffer,addr @szBuffer,2,NULL |
|
[求助]关于键盘钩子的一个奇怪问题
这是当然的吧,你使用的是同一个变量,这样操作的话,你前面创建的hwnd会被后面创建的hwnd替换掉,所以当然每次都只发送同一个hwnd了。 |
|
[求助]汇编开发驱动滴问题
IDOK在windows.inc中是有定义的。 |
|
[原创]X (还没有取名)
为什么删了? |
|
[原创]X (还没有取名)
文件安全管理之类的源码,类似狙剑之类的软件吧。 |
|
[求助]好多问题
wParam的值是由Windows系统调用你的回调函数时传给你的。 |
|
[原创]X (还没有取名)
将你的两个贴子合并在一起,比较好找。 |
|
[求助]OD的使用问题
用NOP的话,除了被修改的指令之外,不会破坏没有修改的指令流程。不用NOP的话,修改的指令如果还有多余的话,就会破坏原来的程序流程。如: jmp指令长度是5个字节,je指令长度是2个字符。将jmp修改成je的话,只需修改jmp的前两个字节,后面三个字节是多余的,这时如果不用NOP的话,jmp后面三个字节的数据会变成新的指令,除非你能保证后面三个字节的数据是一个正好三个字节长度的有用的指令,如果不是,那就会改变和破坏原有程序的流程指令。而用NOP的话,这多余的三个字节会被处理成NOP空执行指令,这样就不会破坏后面的指令流程。 |
|
[求助]DELPHI代码疑惑!
没错,是两个参数。 procedure Val(S; var V; var Code: Integer); '$'+ProcessIDString是第一个参数,i是第二个参数。 |
|
[求助]DELPHI代码疑惑!
procedure TProcessWindow.OKButtonClick(Sender: TObject); var ProcessIDString: String; i: Integer; begin if formsettings.cbUndoMemoryChanges.checked then CheckForChanges; if Processlist.ItemIndex>-1 then begin DetachIfPossible; ProcessIDString:=''; i:=1; while ProcessList.Items[Processlist.ItemIndex][i]<>'-' do begin ProcessIDString:=ProcessIDString+ProcessList.Items[Processlist.ItemIndex][i]; inc(i); end; PWOP(ProcessIDString); //这里的ProcessIDString最后取出来时什么啊?进程ID?PWOP函数是兼关闭“前一个进程”和“打开新的进程”函数,不会取出什么东西来。ProcessIDString保存的是转换成“字符串类型”的“进程ID值”。 MainForm.ProcessLabel.caption:=ProcessList.Items[Processlist.ItemIndex]; end; end; procedure TFrmProcessWatcher.PWOP(ProcessIDString:string); var i:integer; begin val('$'+ProcessIDString,ProcessHandler.processid,i); //初学delphi 这里具体什么意思啊? val 后面'$'Val函数是将字符串类型数值转换成整数类型值,'$'是告诉val函数,这个要转换的字符串类型数值要按十六进制的数值类型转换。 if i<>0 then raise exception.Create(processidstring+' isn''t a valid processID'); if Processhandle<>0 then //这里通过 ProcessIDString 得到了 processid 难道这两个不一样,还是什么标志啊?Processhandle是在外部取得的,不是ProcessIDString得到的。这一句主要是判断Processhandle(进程句柄)是否为零,如果不为零则调用下面的CloseHandle函数关闭进程 begin CloseHandle(ProcessHandle); ProcessHandler.ProcessHandle:=0; end; Open_Process; //这里打开 end; procedure Open_Process; begin {$ifndef netclient} ProcessHandler.ProcessHandle:=NewKernelHandler.OpenProcess(PROCESS_ALL_ACCESS,false,ProcessID); {$endif} end; 小菜菜一个! 希望大家帮助下哈~ PROCESS_ALL_ACCESS具体数值应该时什么饿? SYNCHRONIZE = $00100000; STANDARD_RIGHTS_REQUIRED = $000F0000; PROCESS_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or $FFF); |
|
[求助]查得累死,只查到一点,哪个帮我补下
我想大家不是不想回答你吧,大概是你的问题不好回答或不清楚这个问题吧。起码我是不清楚的。 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值