标签: reverse-engineering

游戏机如何进行逆向设计,以便创建仿真器?

人们如何对Wii等游戏机进行逆向工程,为其游戏可执行文件创建模拟器?

wii reverse-engineering emulation

10
推荐指数
1
解决办法
3055
查看次数

从我的胰岛素泵控制器反向设计统计数据文件

这可能是也可能不是灰色地区的主题,虽然我的意图当然不是,所以我的意图不是激起关于逆向工程主题的道德辩论.

我是目前正在接受泵疗法的1型糖尿病患者.我是OmniPod用户,它是一个一次性的豆荚,粘在我的身体上并分配胰岛素3天.它由个人糖尿病管理员[PDM](见下文)控制,该管理员控制在用餐期间分配多少胰岛素,血糖读数,并且它包含用于计算碳水化合物的食物指数.

替代文字http://www.myomnipod.com/images/pdm-200.jpg

新PDM具有用于下载数据的USB端口.该软件对Windows用户是免费的(一个名为CoPilot的软件包),但没有Mac支持.

将PDM插入我的Mac后,它就像任何其他USB设备一样安装,并向我提供一个可读卷,上面有一个带有IBF扩展名的单个文件.它的重量为16KB.

我的第一直觉是通过文本编辑器传递它,并呈现了一个非常二进制的文件.然后我通过字符串传递它(见下文)并用十六进制编辑器打开它.虽然除了下面的字符串之外我无法获得太多信息; 没有压缩格式的细节或任何东西

$ strings omnipoddata.ibf 
Insulet
OmniPod
basal 1
Post-meal
e-meal
Pre-meal
e-bedtime
Pre-bedtime
.(@P
.(@P
.(@P
Run Code Online (Sandbox Code Playgroud)

在这个过程中我的下一步应该是什么?我是一个动态的语言人,因此Ruby的任何资源都很棒,或者Python.是否有任何测试驱动的逆向工程流程?

至于我想要获得的数据,我想绘制的信息可以获得更多关于我的进展的信息(胰岛素摄入量,血糖读数,时间戳); 所有这些都可以在Windows软件包中使用.

ruby reverse-engineering binary-data

9
推荐指数
1
解决办法
1173
查看次数

有没有很好的C#逆向工程工具?

如果有很好的工具来反向工程我的C#应用​​程序,你能说我吗?我需要我编写的软件的UML类图表,我不想自己绘制这些图表.我已经测试了StarUML,但它没有用,因为我使用了泛型.

如果有一些建议会很棒.

问候,马丁

c# uml modeling reverse-engineering

9
推荐指数
1
解决办法
2万
查看次数

了解大型PHP代码,使用什么技术?

我已经移交了一个用PHP编写的应用程序的大型无证代码,因为原始编码器已经AWOL了.我的任务是添加新功能,但如果不了解代码,我就无法做到这一点.我开始探索.老实说,我对源代码的数量感到不知所措.我已经找到:

  • 它基于MVC架构,数据库持久性,模板和OOP编写得很好
  • 模块化,有基于URL的路由概念,基本模板
  • 使用自定义编写的php框架,没有文档.没有源代码控制历史记录(哎呀!)
  • 有超过500个文件,每个文件包含数百行代码.并且每个文件都有3-4个require_once语句,其中包含大量其他文件,因此很难分辨哪个函数/类/方法来自哪里

现在我正在寻找一些我用来理解这段代码的技巧.例如,请考虑以下代码段:

class SiteController extends Common {

private $shared;
private $view;


protected function init(){


    $this->loadShared();
    $this->loadView();


}

private function loadShared(){
    $this->shared = new Home();
}

private function loadView(){
    $this->view = new HomeView();
}
Run Code Online (Sandbox Code Playgroud)

我想知道

  • 其中HomeView()家庭()被定义?哪里$这个- >共享这个- >观点从何而来?我检查了文件的其余部分,没有名为shared或view的方法.很明显,他们来自使用require_once()包含的数百个类中的一个但是哪一个?我该怎么知道?
  • 我可以获得正在执行的所有函数或方法的列表吗?如果是,那怎么样?
  • 此类SiteController重写基类Common类.但是我无法找出这个Common类的位置.怎么说?

此外,请分享一些用于理解用PHP编写的现有代码的技术?

php static-analysis reverse-engineering

9
推荐指数
1
解决办法
3068
查看次数

如何防止JavaEE 6 .war文件的逆向工程?

我们有几个JavaEE 6应用程序(.war文件),我们需要防止逆向工程,但似乎没有很多选项可用.

我喜欢JarCrypt/JInstaller产品中使用的加密.jar文件(SJAR)的想法,但目前尚不清楚JarCrypt/JInstaller是否可以在JavaEE 6应用程序中运行.像Glassfish3.1这样的服务器.加密的SJAR文件必须使用自定义类加载器由本机库解密,因此显然我必须向Glassfish添加自定义类加载器.

有没有人使用过JInstaller/JarCrypt技术?它们是否在Application Server中工作?

我也看过混淆,但对于JavaEE应用程序,存在很多问题.我将不得不单独留下所有Web服务和JNDI查找.使用像abcMyClass.class这样的东西(即创建log4j Loggers)是有问题的.读取日志文件变得困难.对于所有这些问题,混淆确实几乎没有什么可以保护我们的代码.

我试过Proguard,但显然它无法处理JavaEE 6库.

还有其他替代方案或者这些是关于我的所有选择吗?

谢谢.

obfuscation reverse-engineering java-ee

9
推荐指数
1
解决办法
3546
查看次数

如何从sqlite db创建EER模型

我正在使用sqlitejdbc库来使用java创建数据库.现在我需要从存储在文件中的现有sqlite db生成eer模型.在过去我使用MySqlWorkbench从mysql数据库生成eer,但我不知道如何在sqlite db上做到这一点..有人可以帮助我吗?谢谢!!

java sqlite entity-relationship reverse-engineering eer-model

9
推荐指数
1
解决办法
8776
查看次数

如何在Android上捕获应用流量

我正试图从Android手机上的应用程序捕获流量,虽然我已经在手机上设置代理并且可以捕获来自手机的所有其他互联网流量(使用Charles Proxy),但是我看不到任何流量这个应用程序.

这是如何完成的,如何捕获流量?

更新:

proxy android reverse-engineering

9
推荐指数
1
解决办法
2万
查看次数

Swift逆向工程:swift函数名称规则?

我有一个关于swift函数名称规则的问题.当我在IDA Pro中尝试分析用swift编写的iOS应用程序(也许OS X是相同的情况)时,比如swift-2048,我得到了这样的函数名:

EXPORT __TFC10swift_204811AppDelegate27applicationWillResignActivefS0_FCSo13UIApplicationT_
__text:00022FAC __TFC10swift_204811AppDelegate27applicationWillResignActivefS0_FCSo13UIApplicationT_
...
__text:00022FCC __TToFC10swift_204811AppDelegate27applicationWillResignActivefS0_FCSo13UIApplicationT_
Run Code Online (Sandbox Code Playgroud)

第一和第二个函数名称看起来非常相似.只有一个区别是"TFC"和"TToFC".有什么不同?我看到一些功能sub是不同的:

__text:00022FAC                 EXPORT __TFC10swift_204811AppDelegate27applicationWillResignActivefS0_FCSo13UIApplicationT_
__text:00022FAC __TFC10swift_204811AppDelegate27applicationWillResignActivefS0_FCSo13UIApplicationT_
__text:00022FAC                                         ; DATA XREF: __objc_data:0004A51Co
__text:00022FAC                 STMFD           SP!, {R4,R7,LR}
__text:00022FB0                 MOV             R4, R0
__text:00022FB4                 MOV             R0, R1
__text:00022FB8                 ADD             R7, SP, #4
__text:00022FBC                 BL              _objc_release
__text:00022FC0                 MOV             R0, R4
__text:00022FC4                 LDMFD           SP!, {R4,R7,LR}
__text:00022FC8                 B               _objc_release
__text:00022FC8 ; End of function __TFC10swift_204811AppDelegate27applicationWillResignActivefS0_FCSo13UIApplicationT_
__text:00022FC8
__text:00022FCC
__text:00022FCC ; =============== S U B R O U T I N E =======================================
__text:00022FCC
__text:00022FCC
__text:00022FCC __TToFC10swift_204811AppDelegate27applicationWillResignActivefS0_FCSo13UIApplicationT_
__text:00022FCC                                         ; …
Run Code Online (Sandbox Code Playgroud)

reverse-engineering ios swift

9
推荐指数
1
解决办法
2428
查看次数

选择Pinterest上的所有图像以移动到另一个板

更新:(2015-10-16)[已解决!] - 使用trigger()和限制为50个引脚(使用slice())进行修复.

非常感谢Abhas Tandon通过使用提出这一点

$(this).trigger('click');
Run Code Online (Sandbox Code Playgroud)

代替

$(this).addClass('selected');
Run Code Online (Sandbox Code Playgroud)

它会正确选择图像.我测试了一个由21个图像组成的板,它工作得很完美!但是,当试图移动300多个引脚时,它失败并出现此错误:

"You can only move 50 Pins at a time." 
Run Code Online (Sandbox Code Playgroud)

然后,我通过使用JavaScript的slice()函数来获取前50个图像,从而解决了这个问题.经过测试,现在可以正常使用.所以我的目标是,我一次只能选择并移动50个针脚,但这比用手一个一个地挑选它们要好得多!


最终工作代码:

function checkAll() {
    console.log("Checkboxes count: " + checkBoxes.length);

    $.each(checkBoxes, function(i, v) {
      console.log("Checkbox #: " + i)// + " = " + v);
      $(this).trigger('click');

    });
}

var checkBoxes = $("div > div > div.bulkEditPinWrapper > button");

var checkBoxes = checkBoxes.slice(1, 51);

checkAll();
Run Code Online (Sandbox Code Playgroud)




问题描述:

我正在开发一个Pinterest接口(?)脚本(?)有些麻烦.我是一名程序员,大多是自学成才,我想我可能缺少一些关于AJAX理解的关键部分?这是我第二次尝试编写一个jQuery脚本来与Pinterest进行交互.第一个尝试打败无限滚动功能(AKA"加载更多"按钮),以便将所有图像显示在一个页面上,我可以从中抓取图像链接,然后使用浏览器插件下载它们以备份我的Pinterest登上我的电脑.我的代码全部工作,除了它实际上没有下载任何图像.

失望,我把它暂时放在了其他的东西上.最后,我重新访问了我的代码并进行了一些挖掘,它应该有效.我的研究表明,可能阻止我的程序做我想做的关键FLAW就是"Pinterest使用AJAX".虽然我知道"使用XML的异步JavaScript"和"XMLHttpRequest"这两个术语,但我在实施AJAX方面并不是一个专家.

使用我的最新代码,我写了一个 - 你会认为它会是 - 快速的小jQuery脚本来选择所有图像,以便我可以移动它们,删除,复制等...问题是,虽然检查所有的框工作(你必须在一个板子,然后点击"移动"),当我第二次点击"移动"按钮时,应该弹出一个模态让我们选择要移动到哪个板,我得到的只是

Oops!
Select the Pins …
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery reverse-engineering pinterest

9
推荐指数
1
解决办法
778
查看次数

radare2可以按名称打印局部变量吗?

当radare2分析函数时,它会给出局部变量名称,例如local_4hfor ebp - 0x4.当它们的目的变得明确时,它还能够为这些变量赋予更有意义的名称.但是,重命名变量后,打印变得更加困难.当我看到像mov eax, dword [ebp - i]我必须的那样的指令时

  1. 查看反汇编的顶部以找到该行 var int i @ ebp-0xc
  2. 类型 pxw @ebp-0xc
  3. i从16(!)行输出中的第一行读取值
  4. 从最后一个命令移开后,在反汇编中再次找到我的位置

这不是很多工作,但是当我通过许多变量查看大量装配时,它会很快变得乏味.

作为一个后续问题,每次执行在断点处停止时是否可以打印变量/位置,就像使用GDB的display命令一样?

reverse-engineering disassembly

9
推荐指数
1
解决办法
6578
查看次数