|
[求助]伪装壳该如何查壳脱壳?
既然伪装,就需要找到它真正的名字。 如果是私壳或未知新壳,就只能手脱了。 你想一个简单壳(如UPX)的脱壳教程都能写很长的篇幅,一个未知壳别人怎么能三言两语就帮到你呢??? 求人不如求己。 如果是初学者,就不要从猛壳开始学习,等技术够了再去挑战它。 应该从简单的入手。 有不少专门给初学者写的练习用的CRACK ME,REVERSE ME,用它们练手就好了。 |
|
[求助]新人求助(OD加载问题)
如果是普通的一个进程启动另一个进程,解密用便不再管它,这种情况相对好处理。 在父进程中 下断点bp CreateProcessA或W,在断下来后查看堆栈,会看到它所创建新进程的程序文件名和命令行参数。 如果创建的进程不带调试标志(请查阅MSDN对CreateProcess函数参数的说明),就是我说的普通情况。 如果不带有挂起(CREATE_SUSPENDED)标志,那就可以直接把对应的文件复制出来,如果文件名不对,改名为.exe后一般可运行。 如果带有挂起(CREATE_SUSPENDED)标志,一般子进程是加密的,就先不处理,而是下断点bp ResumeThread,然后F9运行。等再次断下时,表明已经解密完成,直接用LordPE将新创建的进程DUMP出来,保存为.exe文件。 试一试,一般此时DUMP出来的程序已经可以运行了。 如果想直接调试新的进程,而不是DUMP出来,可以将子进程的入口处的首字节改为0xCC,当然你要将OD设置成为系统的JIT Debugger,那么当新进程一开始执行,就会发生异常,唤起调试器,在调试器中将入口点改回来即可。 这是一种非常常用的基本技术。 有时候DUMP出来的程序会检测父进程,如果不是它想要的就直接退出。 此时可以对新DUMP出来的程序打补丁。 关于父进程检测,并不难,有很多文章,自己搜索一下就知道了。常用的断点是PSAPI,如EnumProcesses,GetModuleFileNameEx,EnumProcessModules,等等 另外一种情况,就是类似于穿山甲的“双进程”模式,父进程是子进程的调试器。 这类情况比较难,我水平也有限,就不献丑了。 还有,千万别叫哥。 |
|
[求助]哪个大哥有易我数据恢复的注册码给个呀!
我用的是V2.0版本的。不知道目前用什么版本。 看雪是不允许公布软件的注册码的。 你到ark.hitce.net(如果访问不了,试试ark.hagongda.com)方舟软件园上下载。 其中有别人做好的注册机。 请一定要看注册机那压缩包的注释。如果只是想使用,则直接将它提供的注册信息导入即可。如果想用自己的名字注册,就需要修改信息,然后用内存注册机拦截真的注册码了。 希望你的损失减到最小。 |
|
[求助]我的OD运行不了!
你用的是fly修改的将ollydbg改名为eXplORer的那个吧。 建议到论坛找最近更新的下载,包括所有插件、脚本。 旧的版本有的时候确实出问题。 有时配置的原因也会导致问题。你把ollydbg.ini文件删去再试试。 不过也可能是你系统“病”了。 |
|
[分享]一小程序,感兴趣的朋友看一下
这个东西在shellcode的书里讲得多了去了。 关键就是利用C语言不检查数组边界这一缺陷,在栈空间中分配数组,而使用越界的索引来访问,控制合适的索引值,便可以有目的的访问到栈上的重要数据——返回地址,从而引导程序飞入我们的shellcode. 楼主的这段程序,不过就是把栈上的数组填充了后,让它当作指令来执行,而最后一句越界访问数组的操作恰好是将返回地址覆盖成为刚填充了机器码的栈空间地址。 至于填充的机器码,就是所谓的shellcode了。 呵呵。 另外回楼上的,汇编语言学7遍,跟学两遍没啥区别。重要的是要学习计算机体系结构,如果计算机体系结构学明白了,所有的汇编语言将会无师自通,不光是IA32的,像ARM的,SPARK,68K的,等等,无非就是寄存器集了寻址方式的区别,指令助记符的区别。 要知道汇编语言主要是面向机器的。当前除了极少数的特殊场合,汇编语言根本不是用来开发的,它的用处主要就是调试了。 因此学汇编不能当成学编程,像C++那样学,而是当成检查机器执行情况那样来看待。 当然只是个人观点,接受反驳,呵呵。 |
|
[求助]新人求助(OD加载问题)
所谓的 "反-反调试“ 技术。 看样子你是初学者,这个不容易说清楚。 基本思路就是,把所有能用来反调试的路提前给它堵死。 比如可能会使用 IsDebuggerPressent 这个API来检测调试器,那么我们就提前在这个API处下断点进行拦截,这样当它调用到这里时,就到了我们调试人员的掌握之中了。 另外,带有壳的程序调试之前一般都需要先脱壳,特别是反调试的保护壳。 带壳调试仅仅在非常少见的情况下才用。 脱壳呢,又是比较深的学问了,不好意思,在壳的方面我也学习不够深入,不敢妄言。 但很多常见的壳都是有自动化脱壳工具,如脱壳机或OD的脚本,一般常见壳都可以自动脱壳的。 关于壳的话题,可以到论坛中找找,有大量的壳界高手写的文章。我就不多说了。 |
|
[求助]新人求助(OD加载问题)
再试试。 应该是你找的程序恰好都反调试,或者是带有反调试的壳。 试试自己写的程序,或者Windows自带的程序,如notepad.exe 这种情况一般不是OD的问题,是被调程序的问题。 |
|
[求助]这个CM看不懂, 是不是下鼠标断点啊?怎么下?
已经完成。 在键盘消息的响应函数里判断。 依次从键盘输入 _DFORGU\SNII 共12个字符,包括下划线和反斜杠,注意字母大写,符号是半角。 之后会弹出破解成功的消息。 注:注册码不唯一,但是是有限种组合。 分析过程暂时先不发了。 让大家再研究研究。 明天再发吧。 呵呵。 |
|
[求助]请问:我用BP GetDlgItem 对这个函数下断点,运行后,没有在这停下,why?
如果程序不执行到这里,当然就不会断下了。 编程之道,正是条条大道通罗马。 实现同样的功能可以用N种不同的方法。 谁也没说程序必须调用这个API. 就好比大部分宝蓝编译器生成的程序,弹出消息框是不会调用MessageBox这个API的,而是宝蓝重写的一个叫做ShowMessage的函数。 程序不是死的,怎么能用死方法去对待呢? 解决建议: 试试其它API断点,比如GetDlgItemText,GetWindowText,SendMessage,GetWindow等。 多多实践,积累经验,就慢慢知道什么情况下什么断点了。 没有能够通吃的方法。要有的话,人人都可以搞逆向了。 |
|
|
|
[求助]請問od如何使ESP==某值時中斷
不动可能是你条件表达式没写正确 比如 tc eax == 0x1234 不小心写成了 tc 0x1234 那么,因为0x1234这个表达式的值为“真”,那么一开始跟踪便马上停下来了,结果就像是单步执行了一条语句。 根据我的推断,“跟踪”功能内部可能就是采用“单步”的方式实现的,所以我上面也提到了,“跟踪”比正常执行要慢 几个数量级,而不是慢一点的问题。 所以一般都是在条件快要达成的时候使用“跟踪”功能。 如果你一载入程序就开始“跟踪”,可能会非常考验你的耐心的。 |
|
[求助]求一种文本文件比较方法?
我用过的: 1.UE Studio中的ultra compare 2.beyond compare 强烈推荐前者,可以进行以“行”为单位的文本比较,也可以进行二进制比较,而且如果需要详细信息,可以使用智能比较算法,只要你多等一会。并且,它还支持三文件比较。 我用ultra compare,觉得很好,所以推荐。 如果你用不习惯,可以试试别的。 不过你要对壳使用文件比较,可不是个好主意。 |
|
[求助]OD判断函数入口点的具体细节
最近egogg正在写关于Intel的反汇编引擎的专题。 可以看看。 关于上面的问题,因为0x401c6f这个地址被OD分析时,自动加上了标签,所以反汇编就用标签来显示了。你可以配置OD让它只显示地址的,不过除非特殊需要,我们人容易分析需要标签而不是地址。 同样,如果某地址没有被OD自动分析出来,而经过人工分析知道了这个函数的功能,那么可以手动加上标签,比如原来的指令是 00403F7D E8 BAECFFFF CALL unpacked.00402C3C 你到地址到00402c3c处分析,认为这个函数是计算字串长度的,你按“冒号”键,给它加个strlen的标签,再回到原来的地方,现在它变成这样了: 00403F7D E8 BAECFFFF CALL <unpacked.strlen> 这是分析大段代码时的一种基本方法,应该熟练掌握。 对于楼主提供的例子,只不过标签jmp.&MSVCRT._except_handler3是OD自己分析出来的,可能从IAT中,或其它方式分析得到的,而我举的例子strlen是自己添加了。 另外,分析大块代码时还有一种常用的方法,就是导入模块的MAP文件,它会自己加上很多标签,非常方便。如果是用OD调试自己写程序,MAP文件可以用编译器生成。如果是逆向分析,MAP文件可以使用IDA来生成,因为IDA有很多SIG文件,能够识别相当多的库函数,甚至常用算法的函数,这样再导入到OD中,往往能够事半功倍。 不知道你想了解的是什么细节,我上面说的可有帮助。 如果把问题再叙述得详细些,准确些,就更好了。 |
|
[求助]TRW2000的一些问题
不是获得回复难,实在是...目前还在使用"瘟酒吧"调软件的人...太难了。 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值