|
ida pro 4.7怎么认release可执行文件的c/c++库函数
用cl命令行生产的程序(release版)不带cruntime,如果用vc的ide,项目配置的参数使得程序在编译时加入了runtime(release和debug默认都加入了runtime),你可以参考一下我写的这篇文章,简单的分析了runtime,有不正之处可指出,:) http://blog.csdn.net/waterpub/archive/2005/02/22/297606.aspx |
|
汇编问题(关于标记)[求助]
进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。 使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位,专门改变CF值的指令等。 溢出标志OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。 “溢出”和“进位”是两个不同含义的概念,不要混淆。 |
|
无法调试的问题(VC++)
用这个工具,你的外挂编好后release和debug都可以往这个程序输出,不需要vc了: http://blog.csdn.net/medie/archive/2005/01/03/238098.aspx |
|
[注意]IDA也出bug了!
4.7还有个api函数名错误,getdlgitemtext常常认成getwindowtext了 |
|
哪位DX可以告诉我调试符号是怎么工作的?
map文件(这个你用vc编译器设置一下,产生一个map文件用记事本打开看看就知道了) : 映射文件是一个文本文件,包含有关被链接程序的下列信息: 模块名称,为文件的基名称 时间戳,来自程序文件头(不是来自文件系统) 程序中的组列表,包括每个组的起始地址(节:偏移量的形式)、长度、组名和类 公共符号的列表,包括每个地址(节:偏移量的形式)、符号名称、平直地址和包含符号 定义的 .obj 文件 入口点(节:偏移量的形式) ---------------------------------------------------- pdb文件(调试程序时使用,比如vc下断点的时候可以在辅助窗口看到变量名): 链接器将调试信息放在程序数据库 (PDB) 中。它在后面的程序生成期间更新 PDB。 为调试创建的 .exe 文件或 DLL 包含相应 PDB 的名称和路径。调试器在您调试程序时 读取嵌入的名称并使用 PDB。链接器使用程序的基名称和扩展名 .pdb 命名程序数据库 ,并嵌入它的创建路径。若要重写该默认值,请设置 /PDB 并指定不同的文件名。 编译器的仅限行号 (/Zd) 或 C7 兼容 (/Z7) 选项使编译器将调试信息保留在 .obj 文 件中。还可以使用程序数据库 (/Zi) 编译器选项将调试信息存储在 .obj 文件的 PDB 中。链接器首先在写入 .obj 文件的绝对路径中查找对象的 PDB,然后在包含 .obj 文 件的目录中查找。不能指定对象的 PDB 文件名或链接器的位置。 ------------------------------------------------ sym(来自softice帮助): When you load symbols for an application, SoftICE creates a symbol table that contains all the symbols defined for that module. Use the TABLE command to see all the symbol tables that are loaded: :TABLE GDIDEMO [NM32] 964657 Bytes Of Symbol Memory Available The currently active symbol table is listed in bold. This is the symbol table used to resolve symbol names. If the current table is not the Table 3-2: Classes Used by GDIDEMO Application Class Name Handle Owner Wndw Proc Styles • ------------------Application Private------------------ BOUNCEDEMO A018A3B0 GDIDEMO 004015A4 00000003 DRAWDEMO A018A318 GDIDEMO 00403CE4 00000003 MAZEDEMO A018A280 GDIDEMO 00403A94 00000003 XFORMDEMO A018A1E8 GDIDEMO 00403764 00000003 POLYDEMO A018A150 GDIDEMO 00402F34 00000003 GDIDEMO A018A0C0 GDIDEMO 004010B5 00000003 BETA REVIEW 26 Using SoftICE table from which you want to reference symbols, use the TABLE command and specify the name of the table to make active: :TABLE GDIDEMO Use the SYM command to display the symbols from the current symbol table. With the current table set to GDIDEMO, the SYM command produces output similar to the following abbreviated output: :SYM .text(001B) 001B:00401000 WinMain 001B:004010B5 WndProc 001B:004011DB CreateProc 001B:00401270 CommandProc 001B:00401496 PaintProc 001B:004014D2 DestroyProc 001B:004014EA lRandom 001B:00401530 CreateBounceWindow 001B:004015A4 BounceProc 001B:004016A6 BounceCreateProc 001B:00401787 BounceCommandProc 001B:0040179C BouncePaintProc This list of symbol names is from the .text section of the executable. The .text section is typically used for procedures and functions. The symbols displayed in this example are all functions of GDIDEMO. 大致用处我猜测是用于在softice中显示加载了符号的api名字,比如GetLocalTime函数 如果没有加载相应的符号文件(也就是nms文件),程序反汇编出来的只是机器码。 ---------------------------------------------------- 上面一些只是我的理解,你可以参考一下softice手册。可能有错误,希望能得到高人指 点,:) |
|
有个修改程序的问题,各位大哥帮我看看
找出这个弹出网页的代码,前面插入一个jmp指令,参考看学书上例子,:) |
|
[求助]softice怎样回到上一条jump指令地址
最初由 小楼 发布 刚查了一下文档,softice的回溯跟踪功能好像只能用于dos/9x。 我觉得一个稍简单的方法是先用ida反汇编,然后根据交叉参考和流程图大致看懂结构,知道加密算法的开始和结束地址然后再用softice调试。但是这是静态分析,:),暂时也找不到好的方法了 od不太熟悉,谢谢楼上几位大虾回答 |
|
[求助]softice怎样回到上一条jump指令地址
最初由 nbw 发布 谢谢nbw老大的回答 ,但是这样断点下多了很麻烦,如果出现多级跳转的话跟踪起来有些费时。 好像softice有运行追踪功能,这样可以把几次跳转的过程记录下来,不知道怎么开启运行追踪,softice文档里面也没有找到相关的说明,希望有高人能指点一下 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值